{
 "counted_on": "2026-10-18",
 "note": "Two passes by the journalist's research agents over newsroom.sgit.ai: the 107 article sources in admin/content/articles/ and the 97 articles imported from sgit.ai that exist only as published markdown (index and graphs pages left out). Every article read by its title, summary and the core idea of its graph; 'in_map' says whether admin/content/map.json already cites it.",
 "counts": {
  "context": 42,
  "content": 69,
  "skip": 44,
  "bring": 49,
  "total": 204,
  "in_map": 79
 },
 "articles": [
  {
   "slug": "a-book-for-one-reader",
   "title": "A book for one reader: a personalised edition of Generation Z Developers, assembled by an agent for one person, and paid for as it is read",
   "date": "2026-10-18",
   "class": "context",
   "serves": "making-of",
   "why": "Plans personalised, metered editions of this book; guides the agents producing editions, not a reader chapter.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-browser-for-one",
   "title": "A browser for one: an iPhone app that only reads my newsroom, why I am building it now, and why I will still pay someone to keep it working",
   "date": "2026-10-18",
   "class": "content",
   "serves": "explorers-villagers-town-planners",
   "why": "Take the story: frustration plus the power to build turns into an app for one person, and 'being able to compile a Linux kernel does not mean I want to' maintain it, the explorer-to-villager handover in daily life.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-custom-firefox-of-my-own",
   "title": "A custom Firefox of my own: the full plan to build one with a governed agent hive, for the laptop and the iPad, and how Mozilla could sell me the part I do not want to do, which is keeping it working",
   "date": "2026-10-16",
   "class": "content",
   "serves": "explorers-villagers-town-planners",
   "why": "Take the number: a Firefox fork must be rebased 26 times a year on two codebases, the concrete cost of maintenance that explorers underestimate; and the 'least invasive layer first' habit.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-directory-of-people-and-keys",
   "title": "A directory of people and their keys: pki.sgit.ai for the people I work with, verified by me first, then by each other, and a link that only counts when it goes both ways",
   "date": "2026-10-18",
   "class": "skip",
   "serves": "",
   "why": "sgit PKI product brief, niche.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-link-to-a-persona",
   "title": "A link to a persona: send people to the newsroom as someone, not as nobody",
   "date": "2026-10-10",
   "class": "skip",
   "serves": null,
   "why": "newsroom persona link feature",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-mac-of-the-agents-own",
   "title": "A Mac of the agent's own: a business plan for agent desktops, what Apple's licence allows, and three behaviour policies",
   "date": "2026-10-09",
   "class": "skip",
   "serves": null,
   "why": "business plan for agent Macs",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-meter-in-the-browser",
   "title": "A meter in the browser: a penny a page, a history you keep, and a site that picks for you",
   "date": "2026-10-10",
   "class": "skip",
   "serves": null,
   "why": "reading meter experiment design",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-minimal-viable-browser",
   "title": "A minimal viable browser: why Firefox is the one that can build it, and what it would take",
   "date": "2026-10-18",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the line 'an agent cannot leak what its browser cannot reach' and the browser as the biggest attack surface we run; answers the Xcode and web-proxies outlines.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "a-model-in-the-tab",
   "title": "A model in the tab: Chrome now ships an LLM to capable desktops, and it is the hardest piece of the client-side puzzle",
   "date": "2026-10-11",
   "class": "content",
   "serves": "building-blocks",
   "why": "Take the fact: since Chrome 148 any page can prompt Gemini Nano on the reader's own device, a free model for student projects. Partly fills the costs gap.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-personal-agent-that-keeps-your-secrets",
   "title": "A personal agent that keeps your secrets: the 2026 agents read through behaviour policy and encryption, and a privacy-first design on vaults, enclaves and the browser",
   "date": "2026-10-06",
   "class": "context",
   "serves": "security-agent-era",
   "why": "Background for the agents: the 2026 personal-agent products read for barriers and data sovereignty.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-policy-beside-the-prompt",
   "title": "A policy beside the prompt: a proposal that every agent takes a behaviour policy as an input, with enforcement and liability attached, and why aviation and payments say the vendors should want it",
   "date": "2026-10-13",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the aviation number (1995 accident rate would mean about a hundred fatal accidents a year instead of twelve) and payments liability as the story of why safety follows when rule, liability and business model align.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-policy-for-every-skill",
   "title": "A policy for every skill: Sean Turner's natural-language control for agent skills, the behaviour policy behind it, and using models to need them less",
   "date": "2026-10-14",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take Sean Turner's CI check of every skill in context and the phrase 'using models to need them less' (keep the description canonical, regenerate the code).",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-reading-list-in-a-link",
   "title": "From me to you, in a link: a personal reading list, two briefs to build and use it, and the loop that makes it a day's work",
   "date": "2026-10-11",
   "class": "context",
   "serves": "making-of",
   "why": "Background for the agents: personal reading lists in a link, a mechanism a personalised edition could use.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-second-reader-the-agent-cannot-skip",
   "title": "A second reader the agent cannot skip: how two wrong emails became a gate on every draft",
   "date": "2026-10-09",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the story: two emails went out wrong in the founder's voice, and the fix was a gate the agent cannot skip (deterministic checks, then a different model that fails closed). The old maker-checker idea applied to agents.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "a-section-for-publishers",
   "title": "A section for publishers: where to send someone new to this newsroom, and a site that keeps itself current",
   "date": "2026-10-18",
   "class": "skip",
   "serves": "",
   "why": "Newsroom audience sections, site plumbing.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "a-website-to-finish-the-book",
   "title": "A website to finish the book: gen-z-developers.sgit.ai, where the released book lives in the repository, the working book lives in a vault, and agents help me review it at every altitude",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "making-of",
   "why": "Seeds the book's last part, how the edition was built (official versions in the repository, working versions in a vault, agents in roles), which Dinis wants a Gen Z developer to be able to do.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "act-as-the-job-you-want",
   "title": "Act as the job you want: if you are looking for a job, you have time, so do the work in public, make it linkable, and let the people who want to help you help you",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "getting-the-job",
   "why": "The core job-hunting chapter: if you are looking for a job you have time, so do the job in public, make it linkable, put your CV online, learn to publish with an agent first.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 1
  },
  {
   "slug": "agency-is-not-a-yes",
   "title": "Agency is not a yes: a scale for human and agent decisions, from rubber stamp to the reviewer who fixes the source",
   "date": "2026-10-08",
   "class": "content",
   "serves": "human-in-the-loop",
   "why": "Take the seven-level agency scale, from rubber stamp to the reviewer who fixes the source, and the line that below level 3 the person deciding carries the liability but has no real agency.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "agent-hooks-october-2026",
   "title": "Agent hooks in October 2026: a technical debrief on what each platform lets you see, stop and change, where hooks run, and where they fail",
   "date": "2026-10-14",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Technical survey of hooks across ten coding agents; background for the agents writing the controls chapter, with the takeaway 'guardrails, not walls'.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "agent-workflows-on-ephemeral-vaults",
   "title": "Agent workflows on ephemeral vaults: seven architectures from one agent to a swarm, a repository of recipes that gates sgit's releases, and what a hundred writers did to an append lane",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "sgit multi-agent architecture recipes.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "agentic-cost-is-an-engineering-problem",
   "title": "Agentic cost is an engineering problem: a business plan for a service that reads the logs a company already has and finds the money, then the engineering",
   "date": "2026-10-12",
   "class": "context",
   "serves": "building-blocks",
   "why": "Background for the agents: agentic cost as the price of skipping villager discipline. A business plan, not student costs.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "agentics-ready-to-sell",
   "title": "Agentics, ready to sell: what we showed at Agentic Engineering Live, who else is selling agentic services and at what price, the engagement path, and a marketplace for the consultants who deliver it",
   "date": "2026-10-16",
   "class": "content",
   "serves": "getting-the-job",
   "why": "Take the market facts: Gartner expects over 40% of agentic projects cancelled by end of 2027; boutiques sell £2,500 audits and €2,900 sprints; a marketplace of consultants is forming, a door for newcomers.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "ai-baseline-control-framework",
   "title": "An open AI governance framework, and what its licence let us build",
   "date": "2026-10-07",
   "class": "context",
   "serves": "security-agent-era",
   "why": "Background for the agents: twenty AI governance controls under CC BY-SA, turned into a graph. Too enterprise for the reader.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "allowed-is-not-right",
   "title": "Allowed is not right: an answer to Ashish Rajan's Northstar, with three policies and a twin you can run",
   "date": "2026-10-18",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the Northstar example: the agent may refund up to $200, the customer is owed $120, it refunds $150, every control passes and the outcome is wrong.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "an-agent-desktop-by-the-minute",
   "title": "A locked-down desktop for an agent, by the minute, is still hard to rent",
   "date": "2026-10-07",
   "class": "skip",
   "serves": null,
   "why": "agent desktop rental market survey",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "approve-at-altitude",
   "title": "Approve at altitude: decisions at every level, from strategy to one agent's step, where each level may narrow the one above and never widen it",
   "date": "2026-10-17",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Decision-policy governance at enterprise scale; gives the agents the rule 'a lower level may narrow the one above, never widen it'.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "are-hooks-the-sweet-spot",
   "title": "Are hooks the sweet spot? Moving an agent's rules from hope into hooks, rule by rule, until enforcement moves off the machine",
   "date": "2026-10-14",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take 'hope-based security' and the count: of the site's eleven agent rules only one was kept by something other than the agent; four moved fully into hooks.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "attacks-rewritten-as-mandates",
   "title": "Attacks rewritten as mandates: 28 supply-chain incidents, the column each one was missing, and why the next maintainer is an agent",
   "date": "2026-10-13",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take 'reach beyond mandate' as the shape of every supply-chain attack (28 incidents) and the fact that the next maintainer holding a publish token is an agent (4,746 PRs in eight weeks).",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "authority-outside-the-model",
   "title": "Authority outside the model: an answer to Satya Nadella on models as insider risks, principle by principle, with what we run, what we ship and what we plan",
   "date": "2026-10-11",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: Nadella's seven principles mapped to the mandate. Enterprise framing, cited in map.json.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "books-from-articles",
   "title": "Books from articles: why my books stall at 95%, why these articles do not, and a plan to turn them into books by Web Summit",
   "date": "2026-10-16",
   "class": "bring",
   "serves": "publish-in-public",
   "why": "Books stall at 95% because they are one big batch; small finished pieces with a feedback loop ship; seeds both the publish chapter and the making-of.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "brief-the-agent-too",
   "title": "Brief the agent too: the people I talk to work with agents, so what I send has to reach both",
   "date": "2026-10-11",
   "class": "content",
   "serves": "working-with-agents",
   "why": "Take the story: a founder gave an article to their agent, which saw the team defending against states while its backups were undone and reset the target to T3. Readers now read through agents.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "bringing-my-past-work-back",
   "title": "Bringing my past work back: a daily worker that turns eighteen years of essays, talks, posts and tools into linkable articles, and why every team needs one",
   "date": "2026-10-18",
   "class": "content",
   "serves": "graphs-memory",
   "why": "Take the back-catalogue inventory (103 essays, 1,289 blog posts, 65 decks, 221 videos) and the point that work you cannot link is lost: talk to your future self.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "case-law-for-agents",
   "title": "Case law for agents: principles from the top, precedent from the cases, and how a decision earns its way into code",
   "date": "2026-10-17",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Precedent-driven decision policies; background on how a decision earns its way into code.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "cedar-and-the-policy-vault",
   "title": "Cedar and the policy vault: a debrief on the policy language agents are adopting, where our behaviour policies and sgit vaults meet it, and a brief for the MVP",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "Cedar policy-language product brief.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "chainguard-mapped",
   "title": "Chainguard, mapped: what it builds, what it publishes, how far up the stack its context goes, and where an open behaviour policy and an encrypted vault could plug in",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "Company map, supply-chain specialist depth.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "chat-on-a-static-site",
   "title": "A chat box on a site with no server, the plan, and the trade it makes",
   "date": "2026-08-27",
   "class": "content",
   "serves": "building-blocks",
   "why": "Take the three honest tiers for a chat box with no server (a local matcher, a key in the reader's browser, a vault app with a bridge) and the fact that only one of them is free.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "cloudflare-as-lego-blocks",
   "title": "Cloudflare as Lego blocks: what a non-specialist can build on it in October 2026, and an sgit vault in 83 lines",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "building-blocks",
   "why": "The non-specialist's map of free cloud building blocks (static hosting, Workers 100,000 requests a day, R2, free models) assembled once with an agent; answers AWS and serverless outlines.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 19
  },
  {
   "slug": "code-review-as-a-fractal-semantic-graph",
   "title": "Code review as a fractal semantic graph: source code is already one, and the review should read every layer of it",
   "date": "2026-10-03",
   "class": "bring",
   "serves": "graphs-memory",
   "why": "Source code is already a fractal semantic graph, from stories down to the syntax tree; a refactor moves the bottom and leaves the top still. Map.json uses it for TDD and AST; it gives a newcomer a way to read code they did not write.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "commanders-intent-is-a-behaviour-policy",
   "title": "Commander's intent is a behaviour policy: Sondera's argument in our words, the business layer above it, and five of our rules compiled to Cedar and tested",
   "date": "2026-10-14",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take 'agents do not go rogue; they follow instructions and fill the gaps' and commander's intent: write the objective and its limits together.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "connector-twin-before-you-deploy-an-agent",
   "title": "Before you give an agent a connector, give the connector a twin",
   "date": "2026-09-24",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the three questions to ask before connecting anything: what did the agent do, what did it see when it did it, and which actions can you undo. A twin of the connector (a journal plus a replay) answers all three.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "custom-uis-are-not-the-exception",
   "title": "Custom UIs are not the exception: the inbox in 2026, where every message has its own universe",
   "date": "2026-10-01",
   "class": "content",
   "serves": "everyone-is-a-developer",
   "why": "Take the claim: a custom interface for each moment is now how interfaces get made, so building your own UI is normal, not exotic.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "dark-mode-and-four-more",
   "title": "Dark mode, and four more: five themes for the newsroom, chosen once and kept in your browser",
   "date": "2026-10-13",
   "class": "skip",
   "serves": "",
   "why": "Newsroom theming implementation.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "encrypted-memory-for-isolated-agents",
   "title": "Encrypted memory for agents that run somewhere else: sgit deployment patterns, from a Mac mini to Kubernetes",
   "date": "2026-10-08",
   "class": "context",
   "serves": "graphs-memory",
   "why": "Background for the agents: sgit deployment patterns, and the rule of one vault per trust boundary.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "ephemeral-town-planner-services",
   "title": "Ephemeral town planner services: a better name than serverless, now that serverless includes things that bill you by the hour",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "building-blocks",
   "why": "Explains serverless with Wardley's vocabulary and a test anyone can apply ('if it bills you by the hour when idle it is not serverless'); answers the Serverless and Micro-services outlines.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "every-link-points-back",
   "title": "Every link points back: 566 links between 105 articles, 15 that point forward, and why an article should know what came next and what corrected it",
   "date": "2026-10-13",
   "class": "context",
   "serves": "facts-and-the-record",
   "why": "Links point back in time (551 of 566); background for how the book's chapters should carry forward links and corrections.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "every-mistake-added-a-rule",
   "title": "Every mistake added a rule: complexity, agents, and the way back to shipping",
   "date": "2026-10-08",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "The trap a new agent operator falls into: every mistake becomes a rule, the prompt grows, compaction comes sooner and new mistakes follow. The way out is small, tested, shipped components that no longer need a rule, plus short sessions. Speaks to the \"when the agent is wrong\" gap.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 111
  },
  {
   "slug": "every-risk-is-already-accepted",
   "title": "Every risk is already accepted. The only question is by whom, and for how long.",
   "date": "2026-09-24",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the quote: \"Every risk is already accepted. The only question is by whom, and for how long.\"",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "explorer-coding",
   "title": "Explorer coding: a better name for what people call vibe coding, what it is good for, and the handover to villagers and town planners before anyone depends on it",
   "date": "2026-10-16",
   "class": "bring",
   "serves": "explorers-villagers-town-planners",
   "why": "Defines explorer coding (what is called vibe coding) and the handover to villagers and town planners: the frame of the whole edition.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 2
  },
  {
   "slug": "explorer-to-villager-newsroom",
   "title": "Go slow to go fast: moving the newsroom from an explorer project to a villager one, with the brief to do it",
   "date": "2026-10-11",
   "class": "bring",
   "serves": "explorers-villagers-town-planners",
   "why": "A worked handover with real numbers: about 2,700 lines of live reader code, 433 lines of tests the workflow never runs, two upstreams and no CSP; the fix is go slow to go fast, a pure refactor proved by identical bytes, then the explorer-to-villager phases. Fills the testing gap with a story.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 109
  },
  {
   "slug": "firing-journalists",
   "title": "Firing journalists is the worst thing a publication can do: what a hiring decision says about where a publisher is going, and who to hire instead",
   "date": "2026-10-12",
   "class": "content",
   "serves": "getting-the-job",
   "why": "Take the line \"what you measure is what you become\" and the reading of hiring decisions as a statement of where an employer is going, a lens a job seeker can use on any company.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "fix-the-page-yourself",
   "title": "Fix the page yourself: the bookmarklet trick from my security days, a page API every site should publish, and why the next user experience is the one the user customises, with six fixes running on this newsroom",
   "date": "2026-10-17",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the bookmarklet story from a security assessment: the business owner liked the quick UI more than the exploit; the next UX is the one the user customises.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "footprint-and-blast-radius",
   "title": "Footprint and blast radius: what the agent actually did, and what it would have cost",
   "date": "2026-10-02",
   "class": "bring",
   "serves": "human-in-the-loop",
   "why": "Adds \"footprint\" (what the agent actually did, read from the record and compared with the mandate) beside blast radius (what full use of a reach would cost, and whether there is a way back). Two words a newcomer can use about any agent they run.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 113
  },
  {
   "slug": "four-frameworks-one-agent",
   "title": "Four frameworks, one agent: iason's comparison of the OECD classification, the NIST AI RMF, Japan's guidelines and the EU AI Act, read against what runs here, with the evidence and the graphs",
   "date": "2026-10-13",
   "class": "skip",
   "serves": "",
   "why": "AI risk framework comparison, governance depth.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "free-models-your-own-key",
   "title": "Free models, your own key: what a reader can use from the browser in October 2026, and what they cannot",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "building-blocks",
   "why": "Practical map of what a newcomer can use free in October 2026 with their own key (Groq, Gemini AI Studio, Mistral, OpenRouter free models) and what changed.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "from-a-spreadsheet-to-a-folder-per-person",
   "title": "From a spreadsheet to a folder per person: how to run your contacts the way our agents do, with Google Drive, Gmail and the Claude app, before you touch a vault",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "The most beginner-ready how-to in the newsroom: a Drive folder per person, a Claude Project connected to Drive and Gmail, a six-line policy (draft never send, append never rewrite, stay in the folder), a one-afternoon migration and five exercises. Fills the workspace gap with tools a student already has.",
   "source": "imported from sgit.ai",
   "in_map": false,
   "rank": 102
  },
  {
   "slug": "from-send-to-sgit",
   "title": "From sending a file to sgit: eight months of SG/Send, told by its own briefs and commits, and how a file-sharing service became encrypted version control and vaults",
   "date": "2026-10-15",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take 'the technology worked; the use case was not there yet' ('users buy credits, test once, and don't come back') and the 22-minute feature; plus the record correcting memory.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "future-of-news-story-vault-not-paywall",
   "title": "The future of news is the story vault, not the paywall",
   "date": "2026-09-22",
   "class": "skip",
   "serves": null,
   "why": "news business model thesis",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "generation-z-developers-again",
   "title": "Generation Z Developers (AI edition): the 2018 book that said act like you are part of the company, what it got right, and a new edition for the people I want to help",
   "date": "2026-10-18",
   "class": "context",
   "serves": "everyone-is-a-developer",
   "why": "The edition's plan (keep the name, frame with explorers/villagers/town planners, 90 of 138 files outlines); the founding brief for the writing agents.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "going-live-with-the-reading-meter",
   "title": "Going live with the reading meter: pay for what you read, go below zero if you like, and the numbers we will check in eight weeks",
   "date": "2026-10-10",
   "class": "skip",
   "serves": null,
   "why": "reading meter launch hypotheses",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "green-does-not-mean-live",
   "title": "Green does not mean live",
   "date": "2026-08-17",
   "class": "bring",
   "serves": "building-blocks",
   "why": "\"Shipped is a fact about the reader, not about your repository\": a CI pass is not a release until you have checked what the user actually sees. Seeds the CI/testing section (a first-pass gap) and answers 2018 CI-Testing, SRE and devops.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 108
  },
  {
   "slug": "handing-secrets-to-agents",
   "title": "Handing secrets to agents and browsers: SG/Send's next focus, a key pair where the work runs, one-time drops, and a brief for a site that does only this",
   "date": "2026-10-15",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the rule 'the secret goes from the drop into the tool, never into the chat', and that an agent told something is secret sometimes refuses to use it.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "hired-for-the-workflow",
   "title": "Hired for the workflow: why October 2026 is the moment to get into agentic work, why you are more technical than you think, and how the edge starts with the application",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "getting-the-job",
   "why": "The thesis chapter: October 2026 is the moment; companies need AI operators not model builders; 71% of leaders prefer less experience with AI skills; PwC 62% wage premium; the edge starts with the application.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 0
  },
  {
   "slug": "hooks-are-kernel-code",
   "title": "Hooks are kernel code: a maturity model, the first ten hooks mapped, and a brief for a hooks site and feed where you pay for state, never to run",
   "date": "2026-10-14",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Hooks maturity model and billing brief; gives agents 'treat a five-line hook like kernel code' and the three questions (power, trifecta legs, sandbox).",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "hope-or-enforcement",
   "title": "Hope or enforcement: one customer service agent, three designs, and who keeps each promise",
   "date": "2026-10-08",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the worked example: one customer-service agent in three designs (one broad model, a harness of tools, narrow agents behind a gateway), where most of the policy moves from hope to boundaries and the token cost falls.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "how-cheap-is-it-to-undo",
   "title": "The human in the loop is a spectrum: how cheap it is to undo decides where a person belongs, and why the newsroom ships on its own while my email still waits for me",
   "date": "2026-10-13",
   "class": "bring",
   "serves": "human-in-the-loop",
   "why": "One-way and two-way doors as the test for where a person belongs, with the newsroom shipping 14 releases a day on its own while email still waits; answers the 2018 one-way/two-way doors outline directly.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 7
  },
  {
   "slug": "how-i-work-with-claude",
   "title": "How I work with Claude: one session per topic, agents with names, and memory you curate",
   "date": "2026-10-09",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "Six habits a beginner can copy on day one: one session per topic, named sessions with @names, an agent is a session with a role.md, memory is what the session reads and you curate it, vaults instead of broad permissions, a policy before every connector. Partly fills the \"workspace from zero\" gap.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 104
  },
  {
   "slug": "how-much-of-this-did-i-write",
   "title": "How much of this did I write? The numbers behind twenty articles in four weeks, and what the input actually was",
   "date": "2026-10-05",
   "class": "bring",
   "serves": "making-of",
   "why": "Hard numbers for the making-of part and for the opening frame: 63,000 words in (mostly 35 voice memos), 85,000 out through 122 releases, no article from a one-line prompt; corrections were about direction, not hallucination. \"People with a direction are the input to the loop.\"",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 105
  },
  {
   "slug": "how-news-got-here",
   "title": "The reader was always the product: a corrected history of how news got into this mess",
   "date": "2026-09-29",
   "class": "skip",
   "serves": null,
   "why": "history of news economics",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "how-the-newsletter-is-made",
   "title": "How the newsletter is made: twenty-three articles, three issues, and every quote checked, written by the agent that makes it",
   "date": "2026-10-18",
   "class": "content",
   "serves": "working-with-agents",
   "why": "Take the method: read every source in full (72,000 words), the build checks quotes word for word, the agent checks what no gate can; and the honest backlog.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "how-the-voice-works",
   "title": "How the voice works: why these articles sound like me, with a section in which Claude explains it from its side",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "publish-in-public",
   "why": "The voice is four inputs, not a setting: a corpus of 86 articles (51 from voice memos), the memos themselves, seven wording rules learned one correction at a time, and the author reading everything; includes a section in Claude's own words. For the newsroom chapter and the making-of.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "how-to-run-synthetic-users",
   "title": "How to run synthetic users on your own site: five people who do not exist, a browser, and an afternoon",
   "date": "2026-10-10",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "A practical exercise a beginner can do in an afternoon: write five invented people with a situation and a question, let a model drive a real browser as each of them, then rate the findings and order them by cost. User testing without users, and a portfolio piece.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "i-just-want-to-buy-the-article",
   "title": "I just want to buy the article: what happened when I tried to pay Harvard Business Review for one piece I wanted to answer, the arithmetic of a subscription, and ten things HBR could sell a reader like me, most of them already running on this newsroom",
   "date": "2026-10-17",
   "class": "skip",
   "serves": "",
   "why": "Publisher micropayment economics.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "i-miss-it",
   "title": "I miss it, so it is working: the people who decide the roadmap have to use the product, and the vault the newsroom now needs",
   "date": "2026-10-11",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take the rule that the people who decide the roadmap must use the product, and Dinis's admission that he failed this test with earlier startups. Direction from usage is the scarce part.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "if-somebody-built-a-company-on-code-review",
   "title": "If somebody built a company on code review: how I would do it, and why it is only now possible",
   "date": "2026-10-05",
   "class": "context",
   "serves": "graphs-memory",
   "why": "Background for the agents: graphs at every altitude, and code review as a science. Cited in map.json.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "inside-the-mesa-ranch-desk",
   "title": "Inside the Mesa Ranch desk: a page-by-page tour of an observation vault, from the cover to the knowledge graph you can play in time",
   "date": "2026-10-15",
   "class": "skip",
   "serves": "",
   "why": "Walkthrough of a journalism vault demo.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "inside-the-northstar-twin",
   "title": "Inside the Northstar twin: thirteen refunds, four designs, and every decision played back",
   "date": "2026-10-18",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Walkthrough of a deterministic refund twin; agents can borrow its cases ($261 split into three to fit the limit) as exercises.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "introducing-fractal-semantic-graphs",
   "title": "Fractal Semantic Graphs: everything connects to everything, and nobody has to share a schema",
   "date": "2026-09-20",
   "class": "bring",
   "serves": "graphs-memory",
   "why": "The defining article for \"fractal semantic graph\" (the first pass took the term from knowledge-that-maintains-itself): everything is already a graph in its owner's vocabulary, and a short shared grammar, not a shared schema, links them. Answers 2018 graphs, DSL and DOT language.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "journalism-becomes-intelligence",
   "title": "When journalism becomes intelligence, built: an observation desk for one data-center buildout, from an atlas of 78 events to a community impact tracker, in a vault you can open",
   "date": "2026-10-15",
   "class": "content",
   "serves": "graphs-memory",
   "why": "Take 'as AI makes content production easier, the advantage comes from how we observe the world' and the decision to make records synthetic rather than fake real ones.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "judo-for-small-countries",
   "title": "Judo for small countries: where Portugal, Romania and Estonia can add the most value in AI, and why the race for GPUs is not it",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "civic-and-history",
   "why": "For Portugal, Romania or Estonia the GPU race is a commodity layer only capital wins; the opportunity is the plumbing a talented person needs to sell a service to the world (company, cross-border hiring, payment, language, tax). Map.json uses it for civic responsibility; it also shows the young reader where demand will be.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "knowing-when-to-stop",
   "title": "Knowing when to stop: what experience gives people, and what we have to design into agents",
   "date": "2026-10-08",
   "class": "bring",
   "serves": "NEW:direction-is-the-scarce-skill",
   "why": "Seniority is mostly knowing when to stop (who the attackers are, the phase of the business, the bottleneck, good enough), and agents lack it because their range is the feature. The newcomer's answer is constraints that carry perspective: a mandate, a named stop, narrow scope.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 106
  },
  {
   "slug": "knowledge-that-maintains-itself",
   "title": "Knowledge that maintains itself: semantic graphs for an organisation's policies and internal knowledge, briefing people and agents from the graph, and vaults to carry the brief",
   "date": "2026-10-14",
   "class": "bring",
   "serves": "graphs-memory",
   "why": "Graphs as knowledge management: brief people and agents from a graph, not the pile; 'you do not have to get the graph right first, you have to maintain it'; answers the graphs outline.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "liquid-content-needs-water",
   "title": "Liquid content needs water: liquefy the journalist's notebook, not the finished product",
   "date": "2026-10-07",
   "class": "skip",
   "serves": null,
   "why": "newsroom workflow, journalism industry",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "memory-is-not-a-spectator-sport",
   "title": "Memory is not a spectator sport: how a web of open sites, graphs and vaults became the memory for sessions like this one",
   "date": "2026-10-03",
   "class": "bring",
   "serves": "graphs-memory",
   "why": "Memory for agents is context management: many context-specific memories, fractal so an agent loads only the altitude it needs, published and open, handed off through vaults, with provenance. Explains why your notes and published work matter to your future self.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "move-the-cloud-not-the-code",
   "title": "Move the cloud, not the code: twins, sovereignty that works in practice, and the migration that pays for itself on the day you switch",
   "date": "2026-10-12",
   "class": "context",
   "serves": "civic-and-history",
   "why": "Background for the agents: cloud twins and sovereignty in practice. Cited in map.json.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "my-memory-checked",
   "title": "My memory, checked: thinking out loud in a voice memo, publishing only what the record supports, and why peer review has moved to before publishing",
   "date": "2026-10-15",
   "class": "bring",
   "serves": "facts-and-the-record",
   "why": "Think out loud, publish only what the record supports: 5 claims confirmed, 5 corrected, 2 not found; peer review has moved to before publishing; answers Facts and Talking to yourself.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 10
  },
  {
   "slug": "nineteen-sites",
   "title": "Twenty sites in fifteen days, and what that did to the writing",
   "date": "2026-08-26",
   "class": "content",
   "serves": "publish-in-public",
   "why": "Take the number: twenty sites in fifteen days, as a body of work split so each argument keeps its own history, with an index that starts from the reader's question.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "no-server-by-design",
   "title": "No server, by design: first I retired the database, now I am retiring the back end",
   "date": "2026-10-11",
   "class": "bring",
   "serves": "building-blocks",
   "why": "A beginner-sized architecture: first retire the database (files), then the back end (encrypted vaults keep the server blind, the app runs in the browser, only commodity products are left on the server), and write down the gaps you accept. Answers 2018 serverless, Hugo and micro-services.",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 114
  },
  {
   "slug": "not-a-straight-line",
   "title": "Not a straight line: working for RiskMandate by working on the newsroom, and why the thinking is never wasted",
   "date": "2026-10-12",
   "class": "content",
   "serves": "NEW:direction-is-the-scarce-skill",
   "why": "Take the story: the newsroom solved in two days a vault problem that six months of RiskMandate work had not, and \"the thinking is never wasted when it is written down and open source\" (the paused Cyber Boardroom and MyFeeds).",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "omnichannel-programming",
   "title": "Omnichannel programming: briefs by voice, reviews by voice, previews on the phone, and one shared state underneath, at every stage from explorer to town planner",
   "date": "2026-10-15",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "How a new generation programs: brief by voice, review by voice, preview on the phone, one shared state (git, vaults, briefs, graphs); 54 messages in, 40 releases out in three days.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 6
  },
  {
   "slug": "on-the-record",
   "title": "On the record: signed opinions from experts, paid when readers value them, and a share for the people whose ideas an article uses",
   "date": "2026-10-18",
   "class": "content",
   "serves": "facts-and-the-record",
   "why": "Take the research point that real names did not make comments better, stable identities did, and signed, withdrawable professional opinions as the alternative to comments.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "one-article-five-readers",
   "title": "One article, five readers: a librarian, a cartographer, a historian, an explainer and a storyteller read the same piece",
   "date": "2026-10-10",
   "class": "context",
   "serves": "making-of",
   "why": "Background for the agents: the Librarian, Cartographer, Historian, Explainer and Storyteller roles, which can be reused to produce the book.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "one-vault-ten-agents",
   "title": "One vault, ten agents, 35,000 objects: what sgit does when the repository is big and the clients are many, measured on the vault behind this newsroom",
   "date": "2026-10-16",
   "class": "skip",
   "serves": "",
   "why": "sgit performance measurements.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "open-source-is-not-free",
   "title": "Open source is not free: who pays to keep the long tail working?",
   "date": "2026-10-10",
   "class": "content",
   "serves": "open-source",
   "why": "Take the numbers: 6.99% of Homebrew macOS installs in 30 days (16.66% in a year) are on versions older than the newest three; a 20p card fee dominates any payment under about five pounds.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "our-first-pr-in-ruflo",
   "title": "Our first PR in Ruflo: an ABP-governed SGit page, merged into ruvnet/ruflo, and the four pieces that got it there",
   "date": "2026-10-17",
   "class": "content",
   "serves": "open-source",
   "why": "Take the first-contribution story: a one-file, 83-line documentation PR merged into a 9,625-commit project because it was exact about what it did not claim.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "pay-after-you-read",
   "title": "Pay after you read: how a reading meter became a working business model in one afternoon, one release at a time",
   "date": "2026-10-10",
   "class": "content",
   "serves": "making-of",
   "why": "Take the number: a working pay-on-demand publication in seven releases in 3 hours 40 minutes. This is the meter the book's reader uses, and an example of small releases that each grow from using the last one.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "pay-to-keep-your-persona",
   "title": "Pay to keep your persona: readers should pay because it helps them, not because they feel they should",
   "date": "2026-10-10",
   "class": "skip",
   "serves": null,
   "why": "reader persona pricing argument",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "paying-after-the-value",
   "title": "Paying after the value: why a balance that can go negative feels different from a subscription, the psychology behind it, and the experiment this newsroom is running",
   "date": "2026-10-14",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take the gym figure ($17 a visit when $10 was available) and pay-after-the-value as a business-model idea a young founder can test cheaply.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "places-of-highest-leverage",
   "title": "Places of highest leverage: where to focus when the agents can go in every direction, told with three days of real steps",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "NEW:direction-is-the-scarce-skill",
   "why": "When agents can build in any direction, direction is the scarce part: work where the next step moves the needle most and nothing blocks you; start without knowing the end; ship and use each step; walking back and parking are not failure. This is advice for a newcomer, and map.json does not cite it.",
   "source": "imported from sgit.ai",
   "in_map": false,
   "rank": 101
  },
  {
   "slug": "policy-as-code-needs-a-policy-first",
   "title": "Policy as code needs a policy first: what an agent behaviour policy adds, and how to reverse engineer one from the code, the spreadsheet or the paper you already have",
   "date": "2026-10-14",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Policy as code versus behaviour policy; gives agents 'a rule the agent can rewrite is a setting, not a control'.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "portugal-2010-a-challenge",
   "title": "A web application security challenge to Portugal, 2010: my IBWAS keynote in Lisbon, slide by slide, with what came true, what I got wrong and what still stands",
   "date": "2026-10-16",
   "class": "content",
   "serves": "civic-and-history",
   "why": "Take what came true in 16 years (liability, disclosure, HTTPS) and the lesson that regulation, not fear, moved governments; answers Stories to tell and Civic responsibility.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "portugal-2016-hacking-portugal",
   "title": "Hacking Portugal, 2016: my BSidesLisbon keynote and the book that stopped at 95%, slide by slide, with what holds ten years later and what a new edition needs",
   "date": "2026-10-16",
   "class": "content",
   "serves": "civic-and-history",
   "why": "Take 'to hack means to solve problems', the Portuguese Hacking Service for 15 to 21 year olds, and that agents make a small country leading in code more possible.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "portugal-2024-genai-in-portuguese",
   "title": "GenAI in Portuguese, 2024: my OWASP Global AppSec talk in Lisbon, the first public demo of The Cyber Boardroom, slide by slide, with what two years of agents have confirmed and changed",
   "date": "2026-10-16",
   "class": "content",
   "serves": "everyone-is-a-developer",
   "why": "Take the quiz: the sixth most powerful programming language is Portuguese, because prompts are natural language; your own language is now a programming language.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "portugal-and-europe-2025",
   "title": "Portugal and Europe, 2025: five essays on Portuguese as a programming language, an open-source sovereign cloud, regulation as graphs and Europe's chance in GenAI, and how they read a year and a half later",
   "date": "2026-10-16",
   "class": "context",
   "serves": "civic-and-history",
   "why": "Sovereignty and regulation as graphs; background for a civic-responsibility then-now, with 'sovereignty is the ability to move'.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "price-it-then-give-it-away",
   "title": "Price it, then give it away: the early access programme as the next step after \"do they miss it\"",
   "date": "2026-10-02",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take the move: a price says what you think something is worth; giving it away at that price to people who know you is the cleanest test of whether you are right.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "proof-behind-the-claim",
   "title": "The proof is two clicks behind the claim, what the homepage gets wrong, and the fix",
   "date": "2026-09-07",
   "class": "skip",
   "serves": null,
   "why": "sgit homepage critique",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "proof-moved-up",
   "title": "The proof moved up, the homepage after the rebuild, next to the before pictures",
   "date": "2026-09-07",
   "class": "skip",
   "serves": null,
   "why": "sgit homepage rebuild notes",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "re-anchoring-agent-behaviour-policies",
   "title": "Re-anchoring: keeping an agent's rules alive through every summary, and a canary that shows when they are not",
   "date": "2026-10-10",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the number: this site's session was summarised 18 times in a month, keeping about 1.7% each time. Rules have to be re-read from a file after each summary (a SessionStart hook), not remembered.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "replicating-the-agentic-inbox",
   "title": "Replicating the agentic inbox: a walkthrough from one Claude session to a team of agents that never press send",
   "date": "2026-10-02",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "The how-to the first pass could not find: one Claude session, then roles that talk in files, the agent gets its own Workspace mailbox and its own Claude seat, every email a draft a person sends. Seeds the workspace chapter and the concept \"drafts, never send\".",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 103
  },
  {
   "slug": "research-delivered-as-a-vault",
   "title": "Research, delivered as a vault: what companies that sell research could do with fractal graphs, behaviour policies for AI-enabled products, and evaluations run by a governed agent hive",
   "date": "2026-10-16",
   "class": "skip",
   "serves": "",
   "why": "Research-firm product idea.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "reviews-on-the-record",
   "title": "Reviews on the record: other models, the editor and the desk check every article, and never the same text twice",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "facts-and-the-record",
   "why": "Review as a record: criteria first, other models and people review, every finding answered (fixed, declined with reason, open); the same discipline this book uses; answers Being criticized is a privilege.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 17
  },
  {
   "slug": "rfc-0001-public-key-cryptography-for-sgit",
   "title": "RFC 0001: two ways to add public-key cryptography to sgit, and the questions we want you to answer",
   "date": "2026-10-09",
   "class": "skip",
   "serves": null,
   "why": "sgit cryptography design RFC",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "riskmandate-ten-questions",
   "title": "Ten hard questions for RiskMandate, answered: the mandate, the reach, the gap, and what we are deliberately not",
   "date": "2026-10-09",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: mandate, grant, delta and barriers, the four objects, defined precisely.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "saas-apocalypse-decided-by-inertia-not-by-ai",
   "title": "The SaaS apocalypse will be decided by inertia, not by AI",
   "date": "2026-09-21",
   "class": "content",
   "serves": "explorers-villagers-town-planners",
   "why": "Take the argument: AI is available to both sides, so inertia decides who wins (where a company sits on the evolution axis and how much past success it has to protect). This is why newcomers have room.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "scion-and-sgit",
   "title": "Scion and sgit: Anthropic rebuilt source control for agents inside one company, and an open-source encrypted version already does much of the same thing outside it",
   "date": "2026-10-16",
   "class": "skip",
   "serves": "",
   "why": "Version-control internals comparison.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "scrolled-is-not-read",
   "title": "Scrolled is not read: what the reading meter measures, what it should, highlights you can keep, and the page as the reader's own graph",
   "date": "2026-10-16",
   "class": "skip",
   "serves": "",
   "why": "Reading-meter engineering brief.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "search-as-navigation",
   "title": "Search as navigation: walking the newsroom's graph with no model, and why a clean graph should beat vectors",
   "date": "2026-10-18",
   "class": "content",
   "serves": "graphs-memory",
   "why": "Take the taxonomy debt numbers (663 tags, 396 used once) and the hypothesis that a clean graph needs less model; answers the Google Search and StackOverflow outlines.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "secrets-on-public-keys",
   "title": "secrets.sgit.ai on public keys: no more shared keys, eight ways a secret moves, a vault for the private key, and the commercial service it becomes",
   "date": "2026-10-15",
   "class": "skip",
   "serves": "",
   "why": "secrets.sgit.ai product design.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "sell-dont-issue",
   "title": "Sell, don't issue: a funding model for founders who have already won, where the investor buys the founder's shares, the founder lends the company what it needs, and open source keeps everyone honest",
   "date": "2026-10-16",
   "class": "context",
   "serves": "be-a-founder",
   "why": "Founder secondary-sale funding model; too advanced for a newcomer, background for the founder chapter.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "send-an-agent-not-a-spreadsheet",
   "title": "Send an agent, not a spreadsheet: the next generation of software due diligence, and why the companies that stopped reading their code are about to be asked about it",
   "date": "2026-10-05",
   "class": "context",
   "serves": "security-agent-era",
   "why": "Background for the agents: due diligence done by an agent instead of a questionnaire.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "seven-vaults-one-method",
   "title": "Seven vaults, one method",
   "date": "2026-08-19",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the rule: classify the credential before it touches anything. Each step of the method was learned by getting something wrong first.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "sgit-actions-side-by-side",
   "title": "sgit in GitHub Actions, side by side: a showcase repository and site that runs four ways of moving a vault between jobs on every run, measured, with a budget for its LLM steps",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "sgit CI showcase brief.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "sgit-in-a-ci-pipeline",
   "title": "sgit in a CI pipeline: encrypted, versioned data in and out of GitHub Actions, between its jobs, through write-only lanes, and a key for every job",
   "date": "2026-10-14",
   "class": "context",
   "serves": "building-blocks",
   "why": "CI data patterns with vaults; background for the CI outline (artifacts 90 days, caches 10 GB, outputs 1 MB).",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "sgit-is-a-standard",
   "title": "sgit is a standard, not a server: everything in a vault is one hash away, any storage can serve it, and the server is the least interesting part",
   "date": "2026-10-16",
   "class": "content",
   "serves": "building-blocks",
   "why": "Take 'Git won not because of GitHub but because it is a standard'; answers the Git outline.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "short-punchy-and-co-written",
   "title": "Short, punchy, and co-written with Claude: what Generation Z Developers (AI edition) has to be, and how we show it is not AI slop",
   "date": "2026-10-18",
   "class": "context",
   "serves": "making-of",
   "why": "The book's style contract: short and punchy, credit Claude and show the memo-to-word ratio, meet the slop suspicion with evidence, include a Google Workspace / agentic email chapter.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "six-agents-one-inbox",
   "title": "Six agents, one inbox: what a real multi-agent setup taught me about access policies",
   "date": "2026-09-29",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the line: \"the policy is exactly as strong as the row that says the agent has been told\". Write the policy as a table with an enforcement column.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "sixteen-notes-i-did-not-want-to-lose",
   "title": "Sixteen notes I did not want to lose: a request to send from any browser to my vault, why identity is still this hard, and how two more wires became a product line",
   "date": "2026-10-13",
   "class": "content",
   "serves": "graphs-memory",
   "why": "Take the moment notes in a browser became 'pieces of intelligence' worth keeping, and 'users will accept friction once when the value is clear; they will not accept losing their data'.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "skill-behaviour-policy",
   "title": "A skill behaviour policy: what a skill says it does, what it can do, what it is given, and the control that closes the gap, measured on 899 skills",
   "date": "2026-10-14",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the 899-skills measurement and the honest skill with the whole lethal trifecta (chat history in, HackerNews in, Slack out) that still needs a control; check skills before you install them.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "software-vendors-as-villagers",
   "title": "Software vendors should become villagers and town planners: let users explore on top of the product, sell them the maintenance of what they build, and use Firefox as the example of what happens if you don't",
   "date": "2026-10-16",
   "class": "bring",
   "serves": "explorers-villagers-town-planners",
   "why": "Wardley positioning for products: users explore on top, vendors sell the maintenance; shows why the frame matters to anyone building or buying software.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 13
  },
  {
   "slug": "sovereignty-is-the-ability-to-move",
   "title": "Sovereignty is the ability to move: play where the ball is going, take away the dot, and keep a twin that works",
   "date": "2026-10-12",
   "class": "content",
   "serves": "civic-and-history",
   "why": "Take the test: on a Wardley map, remove each dot and follow the blast radius up to the customer; sovereignty means being able to move, which is about playing where the ball is going.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "stop-the-bleeding-then-ask-for-it-back",
   "title": "Stop the bleeding, then ask for it back: a helper, an agent and a friendly letter for the subscriptions you keep and do not use",
   "date": "2026-10-13",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take it as a worked example of a small agent-run service a freelancer can operate (agent drives the browser; the person types passwords and sends drafts; paid 10% of savings).",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "story-vault-meets-reader-skills",
   "title": "Story vault underneath, Reader Skills on top: why local journalism has the most to gain",
   "date": "2026-10-07",
   "class": "skip",
   "serves": null,
   "why": "local journalism product argument",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "supply-chain-of-vaults",
   "title": "A supply chain of vaults: how GenAI, open data and small custom tools could bring the price of food down",
   "date": "2026-09-27",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take the idea: small custom tools built once with GenAI, on open data, could bring the price of food down. An example of where a newcomer's explorer coding could matter.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "system-prompts-as-behaviour-policies",
   "title": "System prompts as behaviour policies: Claude's published prompt and a leaked ChatGPT one, mapped into rows, a taxonomy of rules, and a JSON file a harness could enforce",
   "date": "2026-10-14",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the count: Claude's published system prompt holds 82 rules, 36 could be held by the harness, 25 stay with the model; a system prompt is a light behaviour policy.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-agent-is-the-reader",
   "title": "The agent is the reader: why agents will pay for graphs, personas and signed claims, because it is cheaper than not paying",
   "date": "2026-10-11",
   "class": "content",
   "serves": "graphs-memory",
   "why": "Take the number: measured on five articles, the graph answers in 90% fewer tokens than the prose.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-agent-team-as-it-runs",
   "title": "The agent team as it runs: one person, twelve agents, encrypted vaults, and a mailbox nobody sends from",
   "date": "2026-10-06",
   "class": "content",
   "serves": "working-with-agents",
   "why": "Take the picture: one person and twelve Claude agents, each a role on its own account, vaults as the only memory, a mailbox nobody sends from, identity and encryption as the strong barriers and policy as the weak one.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "the-agents-write-too",
   "title": "The agents write too: lessons, debriefs and a page for every agent on the newsroom, and a brief for the conductor that will keep it",
   "date": "2026-10-14",
   "class": "bring",
   "serves": "working-with-agents",
   "why": "How to run a team of focused agent sessions: one role each, lessons as memory, debriefs, a conductor; the reader's first multi-agent setup.",
   "source": "newsroom source",
   "in_map": false,
   "rank": 15
  },
  {
   "slug": "the-ai-conference-read-for-governance",
   "title": "The AI Conference 2026, read for agent governance: six claims traced, five disagreements, and what the speaker notes say that the slides do not",
   "date": "2026-10-16",
   "class": "content",
   "serves": "facts-and-the-record",
   "why": "Take the fact-check: of six claims in a widely shared post three traced to sources and three did not; the best fact-checking was in a speaker's notes.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-ai-governance-stack-as-a-graph",
   "title": "The AI governance stack, as a graph: an answer to Hari Kota, built",
   "date": "2026-10-09",
   "class": "skip",
   "serves": null,
   "why": "governance stack reply, enterprise",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-article-remains-a-product",
   "title": "The article remains a product: Jonathan Palmer's four outputs for a newsroom with no human readers, checked against one that runs",
   "date": "2026-10-11",
   "class": "skip",
   "serves": null,
   "why": "newsroom outputs, journalism industry",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-behaviour-policy-is-the-business-logic",
   "title": "Zoom into an agent's behaviour policy and you find the business logic",
   "date": "2026-10-07",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: layered behaviour policies hold business logic that software used to enforce by leaving things out.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-bridge-followed-to-the-end",
   "title": "The bridge, followed to the end: what one local story is worth when it is kept as a graph",
   "date": "2026-10-07",
   "class": "skip",
   "serves": null,
   "why": "story vault simulation, journalism",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-briefs-so-far",
   "title": "The briefs so far: sixty-five things this newsroom has asked of itself, what is built, and where each next session starts",
   "date": "2026-10-18",
   "class": "context",
   "serves": "working-with-agents",
   "why": "Inventory of 65 briefs (11 built, 21 partly, 32 not); background on briefs as the unit of work.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-citizen-developer",
   "title": "The citizen developer is good news: the spreadsheet grown up, the best briefs ever written, and the handover from explorers to villagers and town planners that makes them last",
   "date": "2026-10-14",
   "class": "bring",
   "serves": "everyone-is-a-developer",
   "why": "The citizen developer as the spreadsheet grown up, whose working app is the best brief ever written; answers STEM tech stack, Scratch and Thinking as programmer.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 4
  },
  {
   "slug": "the-code-you-do-not-ship",
   "title": "The code you do not ship: why the future of software is removing functionality, and who gets paid to keep it small",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "security-agent-era",
   "why": "Code is a liability; Log4j; the minimal viable code path (428 of 1,500 files ran); answers Legacy applications, Refactoring and The future needs you.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 11
  },
  {
   "slug": "the-controllable-founder",
   "title": "The controllable founder: why investors pick one founder over another who looks just as good, and what record labels taught us about who the commodity is",
   "date": "2026-10-16",
   "class": "content",
   "serves": "be-a-founder",
   "why": "Take survivorship bias and the hypothesis that investors select for control (half of founders not CEO three years in); a caution for the Be a founder chapter.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "the-deck-i-could-not-download",
   "title": "The deck I could not download: an author-first home for presentations, as a business plan somebody else can build",
   "date": "2026-10-06",
   "class": "skip",
   "serves": null,
   "why": "presentation platform business plan",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-editors-channel",
   "title": "The editor's channel: what I read, sign off and want changed, sent to the newsroom's agent in a vault",
   "date": "2026-10-18",
   "class": "context",
   "serves": "making-of",
   "why": "Editor key and vault channel; background for how Dinis's comments reach the book's agents.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-expert-founders",
   "title": "The expert founders: why the next startups will be built by the people who know the problem, and why Europe's slower, sceptical money suits them",
   "date": "2026-10-15",
   "class": "bring",
   "serves": "be-a-founder",
   "why": "Generative AI lets the people who know the problem build it; mean founding age of fastest-growing startups is 45; three years in an industry doubles top-tier success; money too early kills startups.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 12
  },
  {
   "slug": "the-eyeballs-get-cheap",
   "title": "The eyeballs get cheap: why open source is about to become the most secure software we have, and why secure, sovereign and paid-for meet at the least code in production",
   "date": "2026-10-14",
   "class": "content",
   "serves": "open-source",
   "why": "Take curl's year: AI review first drowned it in noise, then produced hundreds of real fixes; open source is about to become the most secure software.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "the-fork-next-door",
   "title": "The fork next door: why open source protects founders, customers and investors from each other, why forks only take hold when someone stops executing, and why a maturing company should give its explorers a way out",
   "date": "2026-10-16",
   "class": "bring",
   "serves": "open-source",
   "why": "Open source as protection for founders, customers and investors: anyone can fork, forks take hold only when someone stops executing; answers Open Source and GitHub.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 18
  },
  {
   "slug": "the-graphs-books",
   "title": "The graphs books: three books written by agents in a day, the altitudes, the board and the book as a graph, what they got right, and why they stopped under review",
   "date": "2026-10-16",
   "class": "content",
   "serves": "making-of",
   "why": "Take the cautionary tale: three agent-written books (100,000 words in a day) stalled because the approve stage was one person; the making-of read better because it was written over a real record.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "the-homepage-is-a-vault",
   "title": "The homepage is a vault: a fresh edition every morning, every past homepage one commit away, served from plain files, and a brief for the agent that builds it",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "Homepage-as-vault engineering brief.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-human-in-the-loop",
   "title": "The human in the loop, safety net or bottleneck: both, until you decide which outputs need a person and give that person the why",
   "date": "2026-10-13",
   "class": "bring",
   "serves": "human-in-the-loop",
   "why": "People approve 93% of permission prompts; put the person where output cannot be undone and blast radius is large, give them the why, let the record move the line.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 8
  },
  {
   "slug": "the-identity-we-wanted-to-give-the-agents",
   "title": "The identity we wanted to give the agents: a week of design, the line in Google's terms, and why login plus secrets is still too hard",
   "date": "2026-10-05",
   "class": "context",
   "serves": "security-agent-era",
   "why": "Background for the agents: why Google's terms stopped a Workspace identity per agent, and why login plus secrets is still hard.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-infographic-bake-off",
   "title": "The infographic bake-off: which image model for which job, judged blind on 10 October 2026",
   "date": "2026-10-10",
   "class": "context",
   "serves": "making-of",
   "why": "Background for the agents: which image model suits which job, for the book's figures and decks.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "the-investigation-github-owes-its-customers",
   "title": "The investigation GitHub owes its customers: why a global outage of a platform the world deploys through deserves an aviation-style inquiry, and how the evidence could now be gathered",
   "date": "2026-10-05",
   "class": "context",
   "serves": "building-blocks",
   "why": "Background for the agents: platform outages as near misses that deserve an aviation-style inquiry.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-key-is-the-billing-system",
   "title": "The key is the billing system: VoiceDebrief, a product with no server, the one thing it cannot sell, and who could let it",
   "date": "2026-10-12",
   "class": "context",
   "serves": "building-blocks",
   "why": "Background for the agents: VoiceDebrief, a browser app on your own key, and provider terms that forbid reselling keys.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-librarians-daily-brief",
   "title": "The Librarian's daily brief: everything that happened in my universe yesterday, the threads I left, and where my leverage is today",
   "date": "2026-10-18",
   "class": "content",
   "serves": "working-with-agents",
   "why": "Take the daily brief pattern (what happened yesterday, threads left, at most three suggestions for where your leverage is) as a habit any newcomer can set up.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "the-man-behind-the-curtain",
   "title": "The man behind the curtain: the emails from my agents are from me, there is an article behind each one, and every line has to buy the next",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "publish-in-public",
   "why": "Write the article once, link it many times; 'every part buys the next' (subject buys the first line); and the Wizard of Oz in reverse: agent-drafted, human-sent.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 14
  },
  {
   "slug": "the-mandate-stack",
   "title": "The Mandate Stack: a multi-agent system in production, layer by layer",
   "date": "2026-10-06",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background on the eight-layer production setup (about fifteen agents and one person) behind RiskMandate; useful to agents writing the agent-team chapters.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "the-minimum-code-below",
   "title": "The minimum code below: container security from the top down, from the user story to the immutable line, measured on one real tool",
   "date": "2026-10-14",
   "class": "content",
   "serves": "security-agent-era",
   "why": "Take the question 'what is the minimum code below this that the layer above needs?' and the 428 of 1,500 files measurement; answers Docker and Linux outlines.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "the-passkey-opens-the-vault",
   "title": "The passkey opens the vault: a door per path, a master vault for every user, and no server of ours",
   "date": "2026-10-11",
   "class": "skip",
   "serves": null,
   "why": "vault passkey design detail",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-policy-draws-the-liability-line",
   "title": "The policy draws the liability line: an answer to Ralf Thomas on agent accountability, and why every agent in a loop should take a behaviour policy beside its prompt",
   "date": "2026-10-13",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the plain-English prohibitions list (do not send email directly, do not edit other agents' files, make no offers, stay inside the mandate) as a model for writing your agent's rules.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-policy-guards-the-door",
   "title": "The policy guards the door; the command line uses the window: in the SGit × Ruflo run, the ABP is compiled into Ruflo's own rules and enforced on the adapter's tools, while Ruflo's command line reaches the same memory file without it, as the author's own README says",
   "date": "2026-10-17",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the lesson in one line: a policy holds only on the paths that pass through its enforcer.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-question-is-whether-they-miss-it",
   "title": "For a startup, the most important question is whether they miss it",
   "date": "2026-09-21",
   "class": "bring",
   "serves": "be-a-founder",
   "why": "The startup question for a one-person service: do they miss it? Three pillars: be profitable, make investors come to you, open source everything, each buying the next. The source of the first pass's \"every part buys the next\".",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "the-records-ran-out",
   "title": "The records ran out: a fresh agent found the shared contract in two MCP calls, and where sgit and RiskMandate fit at the edges",
   "date": "2026-10-12",
   "class": "content",
   "serves": "building-blocks",
   "why": "Take two facts from Ignacio Aldama's test: a fresh Claude Code session found the shared contract in two MCP calls, and a green build can hide tests that never ran. Feeds the testing gap.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-same-argument-in-our-words",
   "title": "The same argument, in our words: Satya Nadella on models as insider risks, translated into the language of RiskMandate",
   "date": "2026-10-11",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: a glossary between Nadella's vocabulary and RiskMandate's.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-scripted-talk",
   "title": "The scripted talk: a presentation as a timeline that plays on a clock, the two vaults it grows out of, and a player built for tonight's ten minutes",
   "date": "2026-10-15",
   "class": "skip",
   "serves": "",
   "why": "Talk-player tooling brief.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-site-is-an-inbox",
   "title": "The site is an inbox: deciding before reading, marks that build the reader's own graph, and why I could not write this brief until the vault existed",
   "date": "2026-10-12",
   "class": "context",
   "serves": "making-of",
   "why": "Background for the agents: the reader's marks become a graph the reader owns, and the brief for that design.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-tokens-hook",
   "title": "The tokens hook: a token behaviour policy that shows what every session reads, caches, writes and costs, why a prompt cannot do it, and a brief for tokens.hook.sgit.ai",
   "date": "2026-10-15",
   "class": "content",
   "serves": "building-blocks",
   "why": "Take the cost fact: 99% of input from cache is the difference between about $170 and $1,950, and a model cannot see its own usage; know what your agents cost.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-value-of-constraints",
   "title": "The value of constraints: what client-side encryption and open source actually gave us, which is not what you would think",
   "date": "2026-10-16",
   "class": "content",
   "serves": "open-source",
   "why": "Take 'nobody will buy it for its encryption' and constraints as the source of better features; open core is an evaluation version.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-vault-crosses-chrome-profiles",
   "title": "The vault crosses Chrome profiles: state and memory between browser sessions, found by using it rather than by building it",
   "date": "2026-10-13",
   "class": "skip",
   "serves": "",
   "why": "Reader-vault feature discovery note.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-vault-is-live",
   "title": "The vault is live: from a design on 11 October to a reader's vault on newsroom.sgit.ai by two in the morning, and how all of it fits together",
   "date": "2026-10-12",
   "class": "content",
   "serves": "making-of",
   "why": "Take the timeline: from a design on the morning of 11 October to a live reader vault at 02:22 UTC on 12 October, as an example of how fast shipping is now.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "the-vault-opened",
   "title": "The vault, opened: merging devices, reading every call to the vault server, browsing your vaults, and one viewer that every reader vault links and opens with",
   "date": "2026-10-16",
   "class": "skip",
   "serves": "",
   "why": "Reader-vault release debrief.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "the-waiting-room-knew-first",
   "title": "The waiting room knew first: a live local story, and the gap where local information used to be",
   "date": "2026-10-08",
   "class": "skip",
   "serves": null,
   "why": "local news story, hospital outage",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-wall-under-the-reply",
   "title": "The wall under the reply: end an email with the state of the thread, not the thread",
   "date": "2026-10-04",
   "class": "skip",
   "serves": null,
   "why": "email format experiment",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "the-wire-as-a-graph",
   "title": "The wire as a graph: start from what the reader sees, give every story and every name a long-lived ID, link every phrase of a short narrative, and a brief for the desks",
   "date": "2026-10-14",
   "class": "skip",
   "serves": "",
   "why": "Newsroom wire data design.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "three-decisions-mapped",
   "title": "Three decisions, mapped: an agent's memory, this newsroom's release and a customer refund, through behaviour, decision and workflow",
   "date": "2026-10-17",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Maps behaviour/decision/workflow on three scenarios with five states; background for the agents.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "three-linkedin-pages",
   "title": "Three companies, three LinkedIn pages: the brief, the drafts and the first posts, in the open",
   "date": "2026-10-18",
   "class": "content",
   "serves": "getting-the-job",
   "why": "Take the practice: drafting LinkedIn pages, profile and first posts in the open, every post an article already published; answers the LinkedIn outline.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "three-policies-for-an-agent",
   "title": "Three policies for an agent: behaviour says what it may do, decision says who chooses, workflow says in what order",
   "date": "2026-10-17",
   "class": "content",
   "serves": "controlling-your-agent",
   "why": "Take the three-policy split in one line each: behaviour says what it may do, decision says who chooses, workflow says in what order.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "token-bill-nobody-is-sending",
   "title": "Sixteen thousand fetches, ten clicks, and a token bill nobody is sending: the case for paying publishers to be easy to read",
   "date": "2026-09-28",
   "class": "skip",
   "serves": null,
   "why": "publisher payment from answer engines",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "two-agents-one-vault",
   "title": "Two agents, one vault: the Industry Wire is written into an encrypted vault by one agent and drawn by newsroom.sgit.ai, which holds only the read key",
   "date": "2026-10-12",
   "class": "context",
   "serves": "working-with-agents",
   "why": "Background for the agents: a vault as the interface between two agents that never share a session.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "two-years-in-the-opposite",
   "title": "Two years in, the opposite: an essay about burning out on AI that I could not buy, and why my two years of AI have been the most productive of my career",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "everyone-is-a-developer",
   "why": "The counter-story to AI burnout: two years in AI as the most productive and empowered of a career, with Wardley maps showing the game; the tone the book should set for a fearful newcomer.",
   "source": "newsroom source",
   "in_map": false,
   "rank": 16
  },
  {
   "slug": "ultimate-insider-three-collisions",
   "title": "The ultimate insider: agents, the infrastructure that cannot hold them, and risk management that cannot keep up",
   "date": "2026-09-30",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: agents as an insider threat that never scaled before, and constraining an agent in order to trust it.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "versions-of-versions",
   "title": "Versions of versions: when a part of the site is big enough to need its own versions, the publishers' section first, and a tree of versions that runs from a page to the API",
   "date": "2026-10-18",
   "class": "context",
   "serves": "making-of",
   "why": "Versioning parts of a site independently; background for the book's two version streams.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "ways-to-read-one-article",
   "title": "Ways to read one article: the finished piece stays at the centre, and the reader picks the way in",
   "date": "2026-10-12",
   "class": "context",
   "serves": "making-of",
   "why": "Background for the agents: reading modes, with the finished piece kept at the centre. Relevant to the book reader.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "what-can-your-agent-reach",
   "title": "What can your agent reach? RiskMandate and the Agent Behaviour Policy, explained for the person who has to decide",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "controlling-your-agent",
   "why": "The plain explainer of the Agent Behaviour Policy for one agent in one deployment: reach, what was authorised, the gap, the barrier; the concept a newcomer needs before giving an agent access.",
   "source": "newsroom source",
   "in_map": false,
   "rank": 9
  },
  {
   "slug": "what-if-an-agent-loses-its-workspace",
   "title": "What if an agent loses its workspace? Mondweep Chakravorty's SGit × Ruflo proof of concept, step by step: memory saved encrypted, the project deleted, the memory back in a fresh process, and three safeguards that held",
   "date": "2026-10-17",
   "class": "skip",
   "serves": "",
   "why": "Ruflo proof-of-concept walkthrough.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "what-open-source-is-and-is-not",
   "title": "What open source is, and what it is not: six misconceptions, a little history, and why the point is that nobody can lock you in",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "open-source",
   "why": "Six misconceptions (nobody controls it, anybody contributes, more or less secure, free, open weights are open source, no licence is most open), a little history, and the point that nobody can lock you in. Answers the 2018 open-source chapter.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "what-sgit-is",
   "title": "Git for things you cannot put on GitHub",
   "date": "2026-08-25",
   "class": "context",
   "serves": "building-blocks",
   "why": "Background for the agents: sgit is git for things you cannot put on GitHub, on a server that holds only ciphertext. The vault the book uses.",
   "source": "imported from sgit.ai",
   "in_map": true
  },
  {
   "slug": "when-is-the-vault-actually-used",
   "title": "When is the vault actually used? In Mondweep Chakravorty's SGit × Ruflo run, the encrypted vault is written or read in three steps of twelve, on one machine, inside the adapter, and why that is the honest shape of a recovery copy",
   "date": "2026-10-17",
   "class": "skip",
   "serves": "",
   "why": "Ruflo proof-of-concept analysis.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "where-is-the-why",
   "title": "Where is the why? A permission prompt asked me to decide, and kept the reason",
   "date": "2026-10-07",
   "class": "content",
   "serves": "human-in-the-loop",
   "why": "Take the story: a permission prompt that asked for approval without saying which session was asking, why, or what a no would do. Useful when teaching readers to read the prompts their own tools show them.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "where-the-platform-draws-the-line",
   "title": "Where the platform draws the line: Microsoft Execution Containers, the shared responsibility model for agents, and the business logic above it",
   "date": "2026-10-11",
   "class": "context",
   "serves": "controlling-your-agent",
   "why": "Background for the agents: the shared responsibility model for agents (Microsoft Execution Containers), and the business logic that sits above it.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "where-the-vault-keys-live",
   "title": "Where the vault keys live: key management at sgit-ai v0.20.0, and what comes next",
   "date": "2026-10-10",
   "class": "context",
   "serves": "security-agent-era",
   "why": "Background for the agents: key management, append lanes, and the weakest step (handing a key to another agent).",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "who-are-you-protecting-against",
   "title": "Who are you protecting against? Draw the security line where the attacker is, not above it",
   "date": "2026-10-08",
   "class": "bring",
   "serves": "security-agent-era",
   "why": "Threat modelling for a beginner: name the threat agent, the attack vector and how sophisticated it is; a ladder from your own mistakes up to states; most startups plan up to organised crime and do the basics well. Answers 2018 learn-to-hack and threat-modeling. Concept \"draw the line where the attacker is\".",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 107
  },
  {
   "slug": "who-is-speaking",
   "title": "Who is speaking: me, me through an agent, or an agent in its own voice, and a mark on every byline that says which",
   "date": "2026-10-18",
   "class": "bring",
   "serves": "making-of",
   "why": "Three voices (me alone, me through an agent, an agent in its own voice) and a mark on every byline; the book must say which, and so should a newcomer's work.",
   "source": "newsroom source",
   "in_map": true
  },
  {
   "slug": "who-owns-the-words",
   "title": "Who owns the words: agents can make decisions, but they cannot hold responsibility",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "human-in-the-loop",
   "why": "Agents can make decisions but cannot hold responsibility: it stays with whoever granted the reach and set the mandate. Also ELIZA, anthropomorphism, and why talking to agents is normal. Seeds the ethics gap.",
   "source": "imported from sgit.ai",
   "in_map": false,
   "rank": 112
  },
  {
   "slug": "who-will-fix-your-mess",
   "title": "Who will fix your mess? An answer to HBR's \"deployment gap\" from what this site has already published: explorers, villagers and town planners, a record of what the agents built, and open source so the answer never depends on one partner",
   "date": "2026-10-17",
   "class": "bring",
   "serves": "explorers-villagers-town-planners",
   "why": "Answers HBR's deployment gap with the frame: the gap is a handover, the prototype is the best brief, a record (mandate, memory, graph) makes the architecture knowable, open source means anyone can fix it.",
   "source": "newsroom source",
   "in_map": false,
   "rank": 3
  },
  {
   "slug": "who-will-game-the-reading-meter",
   "title": "Who will game the reading meter? Eight kinds of reader, nine ways to cheat, and the risks that will actually happen",
   "date": "2026-10-10",
   "class": "content",
   "serves": "everyone-is-a-developer",
   "why": "Take the numbers: about 0.6% of internet users are developers, and 26% of OECD adults cannot use a computer. Use both to show how far \"everyone who can brief an agent\" reaches beyond the 0.6%.",
   "source": "imported from sgit.ai",
   "in_map": false
  },
  {
   "slug": "why-i-love-wardley-maps",
   "title": "Why I love Wardley maps: the best of ours, how I read one, and a map inside a map inside a map",
   "date": "2026-10-12",
   "class": "bring",
   "serves": "explorers-villagers-town-planners",
   "why": "The book needs this to teach the frame itself: a map is a value chain from a user down and an evolution axis across; it tells you what to build and what to buy and where a market is; maps nest. Seeds a short how-to-read-a-map section and the concept \"Wardley map\".",
   "source": "imported from sgit.ai",
   "in_map": true,
   "rank": 100
  },
  {
   "slug": "why-my-agents-do-not-run-on-my-laptop",
   "title": "Why my agents do not run on my laptop: chat, Cowork and Code in the cloud, a vault as the shared drive, and the two walls an operating system has",
   "date": "2026-10-06",
   "class": "bring",
   "serves": "security-agent-era",
   "why": "Safety advice for newcomers: an agent on your laptop runs as you, with your SSH keys, cookies and password manager session, so pick the cloud surface by reach (chat with nothing connected, Cowork, Code with one repository). Belongs in the workspace chapter.",
   "source": "imported from sgit.ai",
   "in_map": false,
   "rank": 110
  },
  {
   "slug": "your-agents-logs-are-a-self-report",
   "title": "Your agent's logs are a self-report: an answer to a GRC adviser's post on The AI Conference, with this site's own agent as the worked example, including the two commits its own counter got wrong",
   "date": "2026-10-16",
   "class": "content",
   "serves": "facts-and-the-record",
   "why": "Take the research figure: models that exploited a reward hack admitted it in under 2% of cases; an agent's logs are a self-report.",
   "source": "newsroom source",
   "in_map": false
  },
  {
   "slug": "your-own-newsroom",
   "title": "Your own newsroom: how a founder can tell their story by voice memo, with an agent that checks it and publishes it to GitHub Pages, and readers who pay a little if they find it useful",
   "date": "2026-10-15",
   "class": "bring",
   "serves": "publish-in-public",
   "why": "The step-by-step recipe to publish your own story: public GitHub repo, Pages via Actions with validation, a Claude cloud session, a house-rules file, voice memos; answers Publish, Blogs, Hugo, Automate your workflows.",
   "source": "newsroom source",
   "in_map": true,
   "rank": 5
  },
  {
   "slug": "your-reading-your-controls",
   "title": "Your reading, your controls: the meter charges for what you read, you can pause or reset it, and what you have read folds away in six ways",
   "date": "2026-10-17",
   "class": "skip",
   "serves": "",
   "why": "Reading-meter feature debrief.",
   "source": "newsroom source",
   "in_map": false
  }
 ],
 "topics": [
  {
   "id": "everyone-is-a-developer",
   "title": "Everyone who can brief an agent is a developer now",
   "why": "The opening frame of the edition: the reader is already a developer if they can describe what they want to an agent; Gen Z in 2026, the citizen developer, your own language as a programming language, and optimism against the burnout mood.",
   "articles": [
    "generation-z-developers-again",
    "portugal-2024-genai-in-portuguese",
    "the-citizen-developer",
    "two-years-in-the-opposite",
    "explorer-coding",
    "hired-for-the-workflow"
   ],
   "answers_2018": [
    "1.introduction/generation-z.md (Generation Z)",
    "1.introduction/stem-tech-stack.md (STEM Tech Stack)",
    "3.technologies/draft/scratch.md (Scratch)",
    "4.life-patterns/thinking-as-programmer.md (Thinking as programmer)",
    "2.mvp-for-gen-z-dev/content/python.md (Python)",
    "10.misc/gen-z-research.md (Generation Z Research)"
   ]
  },
  {
   "id": "explorers-villagers-town-planners",
   "title": "Explorers, villagers and town planners (Wardley's frame)",
   "why": "The structure of the whole book: where the reader sits, what explorer coding is good for, and the handover to people who maintain and answer for software; the 2018 pioneers/settlers/town planners outline grown up.",
   "articles": [
    "a-browser-for-one",
    "a-custom-firefox-of-my-own",
    "explorer-coding",
    "software-vendors-as-villagers",
    "who-will-fix-your-mess",
    "the-citizen-developer",
    "ephemeral-town-planner-services",
    "omnichannel-programming",
    "two-years-in-the-opposite",
    "the-code-you-do-not-ship"
   ],
   "answers_2018": [
    "4.life-patterns/pionners-settlers-town-planners.md (Are you a pionner, Settlers or Town Planners)",
    "3.technologies/content/pen-and-paper.md (Pen and Paper, via Wardley maps)"
   ]
  },
  {
   "id": "getting-the-job",
   "title": "Getting the job: hired for the workflow, act as the job you want",
   "why": "The practical promise of the book: why October 2026 is a moment of opportunity, what employers want (AI operators), how to stand out when candidates look equal, and how to work in public so others can help you.",
   "articles": [
    "act-as-the-job-you-want",
    "agentics-ready-to-sell",
    "hired-for-the-workflow",
    "three-linkedin-pages",
    "the-man-behind-the-curtain",
    "the-expert-founders",
    "your-own-newsroom"
   ],
   "answers_2018": [
    "1.introduction/how-to-get-a-job.md (How to get a job)",
    "2.mvp-for-gen-z-dev/content/owasp.md (OWASP)",
    "4.life-patterns/mentors.md (Mentors)",
    "4.life-patterns/impostor-syndrome.md (Impostor Syndrome)",
    "6.security/bug-bounties.md (Bug Bounties)",
    "7.your-cv/linkedin.md (LinkedIn)",
    "7.your-cv/github.md (Github)",
    "4.life-patterns/content/learning.md (Learning)",
    "4.life-patterns/content/future-needs-you.md (The future needs you)"
   ]
  },
  {
   "id": "publish-in-public",
   "title": "Publish, publish, publish: your own newsroom",
   "why": "Linkable work is the CV now: a site published by an agent from voice memos, an article behind every answer, small finished pieces over big batches.",
   "articles": [
    "books-from-articles",
    "the-man-behind-the-curtain",
    "your-own-newsroom",
    "act-as-the-job-you-want",
    "three-linkedin-pages",
    "bringing-my-past-work-back"
   ],
   "answers_2018": [
    "4.life-patterns/publish-publish-publish.md (Publish, Publish Publish)",
    "7.your-cv/blogs.md (Blogs)",
    "2.mvp-for-gen-z-dev/content/hugo.md (Hugo)",
    "7.your-cv/personal-brand.md (personal-brand)",
    "7.your-cv/leanpub.md (leanpub)",
    "7.your-cv/twitter.md (twitter)",
    "4.life-patterns/ideas.md (Ideas)"
   ]
  },
  {
   "id": "working-with-agents",
   "title": "How to work with agents: briefs, voice, one shared state",
   "why": "The day-to-day craft: brief by voice, review on the phone, focused sessions with roles, lessons and debriefs as memory, a daily brief, and reading sources in full.",
   "articles": [
    "how-the-newsletter-is-made",
    "omnichannel-programming",
    "the-agents-write-too",
    "the-briefs-so-far",
    "the-librarians-daily-brief",
    "my-memory-checked",
    "knowledge-that-maintains-itself"
   ],
   "answers_2018": [
    "3.technologies/content/ide.md (IDE)",
    "2.mvp-for-gen-z-dev/content/slack-and-chatops.md (Slack and ChatOps)",
    "4.life-patterns/automate-your-workflows.md (Automate your Workflows)",
    "4.life-patterns/workflows.md (Workflows)",
    "5.concepts/pair-programming.md (Pair Programming)",
    "2.mvp-for-gen-z-dev/content/jira.md (Jira)",
    "5.concepts/agile-and-kanban.md (Agile and Kanban)",
    "5.concepts/repl.md (REPL)"
   ]
  },
  {
   "id": "facts-and-the-record",
   "title": "Facts, evidence and the record",
   "why": "Make fact-based decisions (on the 2018 cover) in the agent era: think out loud and let the record check you, count rather than remember, review as a record, and distrust self-reports.",
   "articles": [
    "every-link-points-back",
    "my-memory-checked",
    "on-the-record",
    "reviews-on-the-record",
    "the-ai-conference-read-for-governance",
    "your-agents-logs-are-a-self-report",
    "from-send-to-sgit",
    "how-the-newsletter-is-made"
   ],
   "answers_2018": [
    "5.concepts/facts.md (Facts)",
    "4.life-patterns/content/being-criticized-is-a-privilege.md (Being criticized is a privilege)",
    "5.concepts/feedback-loops.md (Feedback loops)",
    "4.life-patterns/content/talking-to-yourself.md (Talking to yourself digitally)"
   ]
  },
  {
   "id": "human-in-the-loop",
   "title": "Where a person belongs: one-way doors, two-way doors and blast radius",
   "why": "The judgement a newcomer needs before letting an agent act: how cheap is it to undo, how large is the blast radius, and how the record moves the line over time.",
   "articles": [
    "how-cheap-is-it-to-undo",
    "the-human-in-the-loop",
    "the-editors-channel",
    "approve-at-altitude"
   ],
   "answers_2018": [
    "4.life-patterns/one-way-two-way-doors.md (One way and two way doors)",
    "6.security/dont-touch-production.md (Don't touch production)",
    "5.concepts/changes.md (Changes)",
    "3.technologies/content/brain.md (Brain)",
    "5.concepts/chaos-engineering.md (Chaos Engineering)"
   ]
  },
  {
   "id": "controlling-your-agent",
   "title": "Controlling your agent: mandate, reach and hope versus enforcement",
   "why": "Before you give an agent access, write down what it is for and what it can reach; rules in a prompt are hope, rules in a hook or platform are enforcement; behaviour, decision and workflow are different questions.",
   "articles": [
    "a-policy-beside-the-prompt",
    "a-policy-for-every-skill",
    "agent-hooks-october-2026",
    "allowed-is-not-right",
    "approve-at-altitude",
    "are-hooks-the-sweet-spot",
    "case-law-for-agents",
    "commanders-intent-is-a-behaviour-policy",
    "hooks-are-kernel-code",
    "inside-the-northstar-twin",
    "policy-as-code-needs-a-policy-first",
    "system-prompts-as-behaviour-policies",
    "the-policy-draws-the-liability-line",
    "the-policy-guards-the-door",
    "three-decisions-mapped",
    "three-policies-for-an-agent",
    "what-can-your-agent-reach"
   ],
   "answers_2018": [
    "6.security/threat-modeling.md (Threat Modeling)",
    "6.security/security-better-developers.md (Security creates better developers)",
    "3.technologies/content/ml-ai.md (Machine Learning and AI, then-now)"
   ]
  },
  {
   "id": "security-agent-era",
   "title": "Security for the agent era: least code, supply chain, secrets, learning to hack",
   "why": "Code is a liability; the next maintainer is an agent; check skills and dependencies before installing; keep secrets out of the chat; learning to hack is still how you learn how things work.",
   "articles": [
    "a-minimal-viable-browser",
    "attacks-rewritten-as-mandates",
    "fix-the-page-yourself",
    "handing-secrets-to-agents",
    "skill-behaviour-policy",
    "the-code-you-do-not-ship",
    "the-minimum-code-below",
    "the-eyeballs-get-cheap"
   ],
   "answers_2018": [
    "6.security/3rd-party-modules.md (3rd-party-modules)",
    "4.life-patterns/learn-to-hack.md (Learn to Hack)",
    "5.concepts/legacy-applications.md (Legacy Applications)",
    "2.mvp-for-gen-z-dev/content/docker.md (Docker)",
    "2.mvp-for-gen-z-dev/draft/linux.md (linux)",
    "2.mvp-for-gen-z-dev/content/xcode-and-swift.md (Xcode and Swift)",
    "3.technologies/draft/web-proxies.md (Web Proxies)",
    "3.technologies/draft/browser-automation.md (Browser Automation)",
    "4.life-patterns/refactoring.md (Refactoring)"
   ]
  },
  {
   "id": "open-source",
   "title": "Open source: contribute, fork, and why it protects everyone",
   "why": "Open source remains the newcomer's best door (first PR, public work) and is becoming the most secure software; the fork protects founders, customers and investors; constraints make better products.",
   "articles": [
    "our-first-pr-in-ruflo",
    "the-eyeballs-get-cheap",
    "the-fork-next-door",
    "the-value-of-constraints",
    "sell-dont-issue",
    "act-as-the-job-you-want"
   ],
   "answers_2018": [
    "2.mvp-for-gen-z-dev/content/open-source.md (Open Source)",
    "7.your-cv/github.md (Github)",
    "2.mvp-for-gen-z-dev/content/creative-commons.md (Creative Commons)",
    "2.mvp-for-gen-z-dev/draft/github-flow.md (GitHub Flow)"
   ]
  },
  {
   "id": "building-blocks",
   "title": "Building blocks: cloud, serverless, free models, git and CI",
   "why": "What a non-specialist can assemble today, mostly free, with an agent doing the one-time setup; git as a standard; CI; knowing what tokens cost.",
   "articles": [
    "cloudflare-as-lego-blocks",
    "ephemeral-town-planner-services",
    "free-models-your-own-key",
    "sgit-in-a-ci-pipeline",
    "sgit-is-a-standard",
    "the-tokens-hook",
    "your-own-newsroom"
   ],
   "answers_2018": [
    "2.mvp-for-gen-z-dev/draft/aws.md (AWS)",
    "5.concepts/serverless.md (Serverless)",
    "5.concepts/micro-services.md (Micro-Services)",
    "2.mvp-for-gen-z-dev/draft/continuous-integration.md (Continuous Integration)",
    "5.concepts/CI-Testing.md (CI Testing)",
    "5.concepts/devops.md (DevOps)",
    "7.your-cv/git.md (Git)",
    "2.mvp-for-gen-z-dev/content/hugo.md (Hugo)"
   ]
  },
  {
   "id": "graphs-memory",
   "title": "Graphs, memory and your future self",
   "why": "Graphs as the way of thinking (not just Dot): brief from a graph, maintain it rather than perfect it, search as navigation; and keep your work linkable and backed up so your future self can find it.",
   "articles": [
    "bringing-my-past-work-back",
    "journalism-becomes-intelligence",
    "knowledge-that-maintains-itself",
    "search-as-navigation",
    "sixteen-notes-i-did-not-want-to-lose",
    "the-librarians-daily-brief",
    "the-graphs-books"
   ],
   "answers_2018": [
    "5.concepts/graphs.md (graphs)",
    "2.mvp-for-gen-z-dev/content/dot-language.md (Dot Language)",
    "3.technologies/content/AST.md (AST)",
    "3.technologies/draft/dsl.md (DSL)",
    "2.mvp-for-gen-z-dev/content/google-search-gdd-sre.md (Google Search, GDD and SRE)",
    "2.mvp-for-gen-z-dev/draft/stack-overflow.md (StackOverflow)",
    "5.concepts/recursive-functions.md (Recursive Functions)",
    "4.life-patterns/content/backup-your-life.md (Backup your life)",
    "7.your-cv/future-self.md (Future Self)",
    "10.misc/o2-platform.md (O2 Platform)"
   ]
  },
  {
   "id": "be-a-founder",
   "title": "Be a founder (or a one-person service)",
   "why": "Agents make execution cheap, so the expert can build first; what investors select for; technology that works before the use case; small agent-run services and pay-after-value models.",
   "articles": [
    "from-send-to-sgit",
    "paying-after-the-value",
    "sell-dont-issue",
    "stop-the-bleeding-then-ask-for-it-back",
    "the-controllable-founder",
    "the-expert-founders",
    "the-fork-next-door",
    "software-vendors-as-villagers",
    "a-browser-for-one"
   ],
   "answers_2018": [
    "4.life-patterns/content/be-a-founder.md (Be a founder)",
    "4.life-patterns/content/future-needs-you.md (The future needs you)",
    "5.concepts/deadlines.md (Deadlines)"
   ]
  },
  {
   "id": "civic-and-history",
   "title": "Civic responsibility: hacking a country, sovereignty, your language",
   "why": "Dinis's Portugal talks as the then-now of civic responsibility: to hack means to solve problems; what regulation delivered; small countries can lead in code now that everyone can build.",
   "articles": [
    "portugal-2010-a-challenge",
    "portugal-2016-hacking-portugal",
    "portugal-and-europe-2025",
    "portugal-2024-genai-in-portuguese"
   ],
   "answers_2018": [
    "4.life-patterns/civic-responsibility.md (Civic Responsibility)",
    "10.misc/stories-to-tell.md (Stories to tell)"
   ]
  },
  {
   "id": "making-of",
   "title": "How this book was made (the last part)",
   "why": "The edition's own workflow as the final worked example: repository and vault, agents in roles, voice memos, the record, review on the record, three voices, co-written with Claude and the memo-to-word ratio.",
   "articles": [
    "a-book-for-one-reader",
    "a-website-to-finish-the-book",
    "short-punchy-and-co-written",
    "the-editors-channel",
    "the-graphs-books",
    "versions-of-versions",
    "who-is-speaking",
    "books-from-articles",
    "my-memory-checked",
    "reviews-on-the-record"
   ],
   "answers_2018": [
    "1.introduction/how-this -book-was-created.md (How this book is being created)",
    "4.life-patterns/refactoring.md (Refactoring)",
    "10.misc/diagrams-to-add.md (Diagrams to add)"
   ]
  },
  {
   "id": "direction-is-the-scarce-skill",
   "title": "Direction is the scarce skill: the place of highest leverage, knowing when to stop, starting without knowing the end",
   "why": "When anyone can brief an agent, building stops being the bottleneck and choosing what to build, and when to stop, becomes the skill employers and users pay for. This is the junior's version of seniority, and it answers the 2018 life-patterns outlines (habits, the zone, start with why) that had no article.",
   "articles": [
    "places-of-highest-leverage",
    "knowing-when-to-stop",
    "not-a-straight-line",
    "i-miss-it",
    "how-much-of-this-did-i-write",
    "every-mistake-added-a-rule"
   ],
   "answers_2018": []
  },
  {
   "id": "your-first-workspace",
   "title": "Your first workspace: from one Claude Project to a team of agents, safely",
   "why": "The first pass flagged this as gap 1, with no how-to in scope. Four imported articles together make a step-by-step path: a folder per person in Drive with a Claude Project, then habits, then the agent's own mailbox and seat, with agents kept off your laptop. It could also sit as the opening chapter of working-with-agents.",
   "articles": [
    "from-a-spreadsheet-to-a-folder-per-person",
    "how-i-work-with-claude",
    "replicating-the-agentic-inbox",
    "why-my-agents-do-not-run-on-my-laptop",
    "how-to-run-synthetic-users"
   ],
   "answers_2018": []
  },
  {
   "id": "shipped-means-the-user-has-it",
   "title": "Shipped means the user has it: tests, CI and going slow to go fast",
   "why": "Fills the testing/TDD gap with stories rather than theory. A green build is not a release, tests that never run are not tests, the handover from explorer to villager is a refactor you can prove, and synthetic users check what the user sees. Answers 2018 TDD, CI-Testing, SRE and devops.",
   "articles": [
    "green-does-not-mean-live",
    "explorer-to-villager-newsroom",
    "the-records-ran-out",
    "code-review-as-a-fractal-semantic-graph",
    "how-to-run-synthetic-users"
   ],
   "answers_2018": []
  }
 ],
 "concepts": [
  {
   "term": "explorer / villager / town planner",
   "definition": "Simon Wardley's three kinds of people and work: explorers build the new by trying, villagers harden and maintain what people start to depend on, town planners industrialise it and answer for it in production.",
   "defined_in": "explorer-coding"
  },
  {
   "term": "explorer coding",
   "definition": "The newsroom's name for vibe coding: anyone with a need explores it by building, with the fast feedback loop that made spreadsheets win; not ready to be 'in line' until villagers and town planners take it on.",
   "defined_in": "explorer-coding"
  },
  {
   "term": "the handover (deployment gap)",
   "definition": "The step from a prototype to a tool people rely on is not a place to stop but a handover from explorers to villagers and town planners, who add the non-functional requirements.",
   "defined_in": "who-will-fix-your-mess"
  },
  {
   "term": "citizen developer",
   "definition": "The employee, owner or expert who now builds full applications: the spreadsheet grown up, good news rather than a risk.",
   "defined_in": "the-citizen-developer"
  },
  {
   "term": "the prototype is the best brief",
   "definition": "What someone builds for themselves says what they actually want, in a form that runs, better than any requirements document.",
   "defined_in": "the-citizen-developer"
  },
  {
   "term": "AI operator",
   "definition": "Dinis's term for the people companies need now: not model builders but people who use the tools and workflows to get things done.",
   "defined_in": "hired-for-the-workflow"
  },
  {
   "term": "hired for the workflow",
   "definition": "Being hired for the ability to run agentic workflows, as people were once hired for breaking apps or building websites, degree or no degree; the edge shows when candidates look equal, starting with the application.",
   "defined_in": "hired-for-the-workflow"
  },
  {
   "term": "act as the job you want",
   "definition": "If you are looking for a job you have time: do the job before you have it, in public, so it can be linked: reach does not matter, the link lets the people who want to help you forward it.",
   "defined_in": "act-as-the-job-you-want"
  },
  {
   "term": "your own newsroom",
   "definition": "A personal publishing loop: voice memo in, an agent researches, checks and writes in your voice, a validated static site out, readers pay a little if it is useful.",
   "defined_in": "your-own-newsroom"
  },
  {
   "term": "omnichannel programming",
   "definition": "Programming across voice, chat, phone, IDE and pull requests where every channel reads and writes one shared state (git, vaults, briefs, graphs), as against multichannel, where each keeps its own copy.",
   "defined_in": "omnichannel-programming"
  },
  {
   "term": "brief",
   "definition": "A written request an agent session can start from: what is asked, what exists, what remains; the unit of work between a person and agents.",
   "defined_in": "the-briefs-so-far"
  },
  {
   "term": "one-way door / two-way door",
   "definition": "Amazon's test, used here for agents: a two-way door can be undone cheaply (a page correction), a one-way door cannot (a sent email); the cost of undoing decides where a person belongs.",
   "defined_in": "how-cheap-is-it-to-undo"
  },
  {
   "term": "blast radius",
   "definition": "What an output or a row of an agent's reach would cost if it went wrong in full today; put the person where it is large and the output cannot be undone (defined fully in footprint-and-blast-radius, outside the surveyed set).",
   "defined_in": "the-human-in-the-loop"
  },
  {
   "term": "Agent Behaviour Policy (ABP)",
   "definition": "For one agent in one deployment: what it can reach, what it was authorised to do, the gap between the two, and what actually stands in the way of each capability.",
   "defined_in": "what-can-your-agent-reach"
  },
  {
   "term": "mandate, reach and the gap",
   "definition": "Mandate is what the agent (or credential) is for; reach is everything it can touch; the gap between them is the risk, and every supply-chain attack used it.",
   "defined_in": "attacks-rewritten-as-mandates"
  },
  {
   "term": "hope-based security",
   "definition": "Rules written in a prompt and kept only if the model keeps them: better than nothing, not enough on its own.",
   "defined_in": "are-hooks-the-sweet-spot"
  },
  {
   "term": "hooks",
   "definition": "Small programs the agent's harness runs at fixed points (before and after a tool call, on prompt, on stop) that can see, block or rewrite actions; guardrails, not walls.",
   "defined_in": "agent-hooks-october-2026"
  },
  {
   "term": "behaviour, decision and workflow policies",
   "definition": "Behaviour says what an agent may do, decision says who chooses at a branch point and on what evidence, workflow says in what order.",
   "defined_in": "three-policies-for-an-agent"
  },
  {
   "term": "allowed is not right",
   "definition": "Every control can pass and the outcome still be wrong (a $150 refund where $120 was owed); proving the right outcome needs a written definition of right.",
   "defined_in": "allowed-is-not-right"
  },
  {
   "term": "lethal trifecta",
   "definition": "Simon Willison's term the newsroom uses: private data, untrusted content and a way out in one agent or skill; any agent with all three needs a control even if honest.",
   "defined_in": "skill-behaviour-policy"
  },
  {
   "term": "the record",
   "definition": "What was actually done, kept outside anyone's memory (commits, briefs, transcripts, versions); 'the record catches up with the instinct', so thinking out loud becomes safe, and peer review moves to before publishing (confirmed, corrected or not found).",
   "defined_in": "my-memory-checked"
  },
  {
   "term": "review on the record",
   "definition": "Every review is a file written once against published criteria, and every finding is answered: fixed in which version, declined and why, or open.",
   "defined_in": "reviews-on-the-record"
  },
  {
   "term": "self-report",
   "definition": "An agent's own logs and account of itself; evidence written outside the agent is more honest and still needs reading.",
   "defined_in": "your-agents-logs-are-a-self-report"
  },
  {
   "term": "code is a liability / minimal viable code path",
   "definition": "Every shipped line is a capability someone may misuse; the future is the smallest code that does exactly the job, made safe by model-built tests and maps.",
   "defined_in": "the-code-you-do-not-ship"
  },
  {
   "term": "ephemeral town planner services",
   "definition": "A better name for serverless: scales to zero, costs nothing idle, starts fast, a commodity exposed for others; test: if it bills you by the hour when idle, it is not serverless.",
   "defined_in": "ephemeral-town-planner-services"
  },
  {
   "term": "fractal semantic graph",
   "definition": "Knowledge held as a graph with an ontology and taxonomy per element, each part in its own vocabulary, every node openable as a graph of its own; briefs come from the slice you need.",
   "defined_in": "introducing-fractal-semantic-graphs"
  },
  {
   "term": "the fork next door",
   "definition": "In open source anyone can fork, which protects founders, customers and investors from each other; forks take hold only when someone stops executing.",
   "defined_in": "the-fork-next-door"
  },
  {
   "term": "every part buys the next",
   "definition": "The subject buys the first line, the first line buys the paragraph, the paragraph buys the email: open with the short answer in plain text.",
   "defined_in": "the-question-is-whether-they-miss-it"
  },
  {
   "term": "three voices",
   "definition": "Me alone, me through an agent, an agent in its own voice; every byline should say which.",
   "defined_in": "who-is-speaking"
  },
  {
   "term": "your own key",
   "definition": "Using a model provider with your own API key called straight from the browser, so nobody else holds the key or pays for your questions.",
   "defined_in": "free-models-your-own-key"
  },
  {
   "term": "Wardley map",
   "definition": "A graph with context in two directions: a value chain anchored on a user and a need, and an evolution axis (usually genesis, custom built, product, commodity, though the axis is a choice). Read out like a story, it says what to build, what to buy, and where a market exists. Every node is itself a map.",
   "defined_in": "why-i-love-wardley-maps"
  },
  {
   "term": "place of highest leverage",
   "definition": "Where the most value can be added now, nothing blocks you, and you can start without knowing how the whole problem ends. It is not where the biggest problem is. Each step is shipped and used before the next is chosen.",
   "defined_in": "places-of-highest-leverage"
  },
  {
   "term": "direction is the scarce thing",
   "definition": "Agents can build in any direction; what they cannot generate is the sense of what to build next and when to stop. People with a direction are the input to the loop, not displaced by it.",
   "defined_in": "places-of-highest-leverage"
  },
  {
   "term": "knowing when to stop",
   "definition": "The judgement that experience gives people (who the attackers are, the phase of the business, the bottleneck, what good enough looks like). Agents lack it by design, so it has to be supplied as constraints: a mandate, a stop named in advance, a narrow scope.",
   "defined_in": "knowing-when-to-stop"
  },
  {
   "term": "footprint",
   "definition": "What the agent actually did, read afterwards from the record and compared with its mandate. It is the partner of blast radius, which is what a reach would cost if used in full.",
   "defined_in": "footprint-and-blast-radius"
  },
  {
   "term": "green does not mean live",
   "definition": "Shipped is a fact about the reader, not about your repository: a release has to check the boundary the user is on, not only the ones CI can see.",
   "defined_in": "green-does-not-mean-live"
  },
  {
   "term": "an agent is a session with a focus",
   "definition": "An agent is a named session (an @name) that reads a few documents about the project and a role.md saying what it does and does not do. One session per topic, never mixed threads.",
   "defined_in": "how-i-work-with-claude"
  },
  {
   "term": "drafts, never send",
   "definition": "The rule for an agentic inbox: agents read, label and draft, and a person reads, edits and presses send. The agent has its own mailbox and its own Claude seat, never yours.",
   "defined_in": "replicating-the-agentic-inbox"
  },
  {
   "term": "threat ladder (draw the line where the attacker is)",
   "definition": "Security starts from who the threat agent is, the attack vector and how sophisticated it is. On a ladder from your own mistakes up to states, plan to the rung that matches what you protect, do the basics consistently, and write down what you accept above that rung.",
   "defined_in": "who-are-you-protecting-against"
  },
  {
   "term": "every risk is already accepted",
   "definition": "Every risk an organisation has is already accepted by somebody, so the questions are who accepted it and until when.",
   "defined_in": "every-risk-is-already-accepted"
  },
  {
   "term": "agents decide, people answer",
   "definition": "Agents in loops make real decisions, but responsibility stays with whoever granted the reach and set the mandate, because the grant is the moment of authorisation.",
   "defined_in": "who-owns-the-words"
  },
  {
   "term": "agency scale",
   "definition": "Seven levels from rubber stamp to the reviewer who fixes the source. A decision is capped by its weakest ingredient (options, context, time, incentives, escalation, authority). Below level 3 the person deciding carries liability without agency.",
   "defined_in": "agency-is-not-a-yes"
  },
  {
   "term": "every mistake added a rule",
   "definition": "The complexity trap for agent operators: each mistake becomes a rule, the prompt grows, compaction comes sooner and new mistakes follow. The way out is small, tested, shipped components that move right on the map and no longer need the rule.",
   "defined_in": "every-mistake-added-a-rule"
  },
  {
   "term": "re-anchoring",
   "definition": "Keeping an agent's rules in a file that a hook prints back after every summary, so the rules are restored rather than remembered, with a canary that shows they are still being read.",
   "defined_in": "re-anchoring-agent-behaviour-policies"
  },
  {
   "term": "synthetic users",
   "definition": "Invented people, each with a situation, a question, what they know and what makes them leave, played by a model that drives a real browser one screenshot at a time, so it can get lost as a person would.",
   "defined_in": "how-to-run-synthetic-users"
  },
  {
   "term": "go slow to go fast",
   "definition": "The explorer-to-villager move done as a pure refactor, proved by the live site serving the same bytes, before adding tests and hardening.",
   "defined_in": "explorer-to-villager-newsroom"
  },
  {
   "term": "no server by design",
   "definition": "Retire the database (files), then the back end: encrypted vaults keep the server blind, the app runs in the browser, only commodity products are left on the server, and the gaps you accept are written down.",
   "defined_in": "no-server-by-design"
  },
  {
   "term": "do they miss it",
   "definition": "The startup test: if users would miss the product when it is gone, it is working. The people who set the roadmap have to use the product themselves.",
   "defined_in": "the-question-is-whether-they-miss-it"
  },
  {
   "term": "open source means nobody can lock you in",
   "definition": "Open source is a copyright licence granting copying, use and change. Its real power is that nobody can lock you in. Security depends on whether somebody had the time and money to review the code.",
   "defined_in": "what-open-source-is-and-is-not"
  },
  {
   "term": "inertia decides",
   "definition": "AI is available to incumbents and newcomers alike, so the outcome is decided by where each sits on the evolution axis and how much past success it has to protect.",
   "defined_in": "saas-apocalypse-decided-by-inertia-not-by-ai"
  }
 ],
 "gaps": [
  "Setting up your workspace from zero: a Google Workspace (or equivalent), GitHub account, Claude/ChatGPT connected to it, and the agentic email workflow; short-punchy-and-co-written asks for this chapter and no surveyed article is a how-to (replicating-the-agentic-inbox exists only outside the surveyed set).",
  "Learning how to learn with an agent: how to use agents to understand rather than skip understanding (reading code you did not write, asking why), for someone with no prior coding; the 2018 Learning chapter has no article behind it beyond hired-for-the-workflow.",
  "Fear, impostor syndrome and anxiety about AI among young people: the map notes 'fear of AI among young Europeans'; two-years-in-the-opposite is Dinis's story, not advice for a newcomer.",
  "The job hunt mechanics in 2026: interviews, take-home tests done with or without AI, what a junior/entry role actually looks like day to day, freelancing and Upwork; agentics-ready-to-sell covers consultancy, not first jobs.",
  "Testing and TDD as what lets an agent change code safely, for a beginner (the map points to code-review-as-a-fractal-semantic-graph, outside the surveyed set).",
  "The command line, Linux and git basics as practical skills (sgit-is-a-standard argues git's design, not how to use it).",
  "Debugging and reading errors with an agent; when the agent is wrong and how you notice.",
  "Costs and money for a newcomer: what a Claude/ChatGPT plan, tokens and free tiers cost a student (the-tokens-hook and free-models-your-own-key are partial).",
  "Privacy, data protection and ethics for someone building with agents (GDPR outline has no newsroom article in scope).",
  "Habits, focus, the zone and burnout (Power of Habits, The Zone, Start with Why, Dopamine outlines have nothing).",
  "Mentors and community: finding people to learn from, meetups, OWASP chapters today (only act-as-the-job-you-want touches it).",
  "Diversity and accessibility of the field: who gets in now that the bar is lower (Why diversity matters outline; fix-the-page-yourself touches accessibility only).",
  "Maths and fundamentals (Love Maths, Assembly and Bytecode, Pointers, Strings should be banned): whether a newcomer still needs them, and why.",
  "Hardware and making (Raspberry Pi, IoT, Minecraft outlines): no article; the editor may cut them."
 ],
 "gaps_filled_by_imported": [
  "Setting up your workspace from zero: filled by from-a-spreadsheet-to-a-folder-per-person, replicating-the-agentic-inbox, how-i-work-with-claude, why-my-agents-do-not-run-on-my-laptop. A complete path from a Claude Project on Drive and Gmail, to habits, to an agent mailbox and seat, to choosing surfaces by reach. The step that is still missing is a beginner's accounts checklist (GitHub, domain, cost).",
  "Testing and TDD as what lets an agent change code safely: filled by green-does-not-mean-live, explorer-to-villager-newsroom, the-records-ran-out, code-review-as-a-fractal-semantic-graph, how-to-run-synthetic-users. Covered with stories and numbers. A first red-green test written for a beginner is still not covered.",
  "Debugging and reading errors with an agent; when the agent is wrong and how you notice: partly by every-mistake-added-a-rule, a-second-reader-the-agent-cannot-skip, re-anchoring-agent-behaviour-policies, footprint-and-blast-radius. Covers noticing and containing agent mistakes. Reading a stack trace with an agent is not covered.",
  "Learning how to learn with an agent: partly by how-i-work-with-claude, code-review-as-a-fractal-semantic-graph, memory-is-not-a-spectator-sport, how-much-of-this-did-i-write. Curated memory, reading code by its layers, and direction as the input. There is still no beginner exercise in \"ask why\".",
  "Habits, focus, the zone and burnout: partly by places-of-highest-leverage, knowing-when-to-stop, not-a-straight-line. Focus as undivided attention on the place of highest leverage; knowing when to stop; written-down thinking is never wasted. Burnout and wellbeing are not covered.",
  "Privacy, data protection and ethics for someone building with agents: partly by who-owns-the-words, agency-is-not-a-yes, where-is-the-why, why-my-agents-do-not-run-on-my-laptop. Responsibility and consent are well covered. GDPR as such is not.",
  "Costs and money for a newcomer: partly by a-model-in-the-tab, chat-on-a-static-site, the-key-is-the-billing-system. Free on-device models and the one free tier of chat on a static site. There is still no student price table.",
  "Security for a beginner: learn to hack / threat modelling (2018 learn-to-hack, threat-modeling): filled by who-are-you-protecting-against, every-risk-is-already-accepted, seven-vaults-one-method. Not a first-pass gap, but map.json rows depend on these."
 ],
 "top_bring": {
  "from_sources": [
   "hired-for-the-workflow",
   "act-as-the-job-you-want",
   "explorer-coding",
   "who-will-fix-your-mess",
   "the-citizen-developer",
   "your-own-newsroom",
   "omnichannel-programming",
   "how-cheap-is-it-to-undo",
   "the-human-in-the-loop",
   "what-can-your-agent-reach",
   "my-memory-checked",
   "the-code-you-do-not-ship",
   "the-expert-founders",
   "software-vendors-as-villagers",
   "the-man-behind-the-curtain",
   "the-agents-write-too",
   "two-years-in-the-opposite",
   "reviews-on-the-record",
   "the-fork-next-door",
   "cloudflare-as-lego-blocks"
  ],
  "from_imported": [
   "why-i-love-wardley-maps",
   "places-of-highest-leverage",
   "from-a-spreadsheet-to-a-folder-per-person",
   "replicating-the-agentic-inbox",
   "how-i-work-with-claude",
   "how-much-of-this-did-i-write",
   "knowing-when-to-stop",
   "who-are-you-protecting-against",
   "green-does-not-mean-live",
   "explorer-to-villager-newsroom",
   "why-my-agents-do-not-run-on-my-laptop",
   "every-mistake-added-a-rule",
   "who-owns-the-words",
   "footprint-and-blast-radius",
   "no-server-by-design"
  ]
 }
}
