{
  "schema": "commons-graph/1",
  "note": "Built from the repository records. Garden nodes are open drafts not yet reviewed by a person. Symmetric edges (related, parallels) appear once.",
  "nodes": [
    {
      "id": "cmp-check-the-result",
      "kind": "competency",
      "title": "Check the result",
      "summary": "Check what AI gave you against something real before you trust it or pass it on.",
      "layer": "core",
      "url": "/skills/#cmp-check-the-result"
    },
    {
      "id": "cmp-describe-the-task",
      "kind": "competency",
      "title": "Describe the task",
      "summary": "Give AI the context, examples and constraints it needs to do the job well.",
      "layer": "core",
      "url": "/skills/#cmp-describe-the-task"
    },
    {
      "id": "cmp-frame-the-outcome",
      "kind": "competency",
      "title": "Frame the outcome",
      "summary": "Decide what result you want, and what it's for, before asking AI for anything.",
      "layer": "core",
      "url": "/skills/#cmp-frame-the-outcome"
    },
    {
      "id": "cmp-make-it-repeatable",
      "kind": "competency",
      "title": "Make it repeatable",
      "summary": "Turn something that worked once into a routine you, or others, can rely on.",
      "layer": "core",
      "url": "/skills/#cmp-make-it-repeatable"
    },
    {
      "id": "cmp-steering",
      "kind": "competency",
      "title": "Steer",
      "summary": "Direct the work as it goes. Set guardrails, approve one step at a time, and cut scope when AI does more than you need.",
      "layer": "core",
      "url": "/skills/#cmp-steering"
    },
    {
      "id": "cmp-use-responsibly",
      "kind": "competency",
      "title": "Use responsibly",
      "summary": "Protect private information, know when a person has to decide, and be open about how AI was used.",
      "layer": "core",
      "url": "/skills/#cmp-use-responsibly"
    },
    {
      "id": "con-adoption-rituals",
      "kind": "concept",
      "title": "Adoption rituals over mandates",
      "summary": "Teams start using AI through recurring shared habits, such as a weekly AI hour, hack weeks and leaders building things where others can see, more than through orders to use it. Claire Vo's argument from leading product teams.",
      "layer": "garden",
      "url": "/concepts/con-adoption-rituals/",
      "markdown": "/concepts/con-adoption-rituals.md"
    },
    {
      "id": "con-agents",
      "kind": "concept",
      "title": "Agents",
      "summary": "AI that works toward a goal over several steps on its own, choosing actions, using tools and checking its progress, rather than giving one reply and waiting.",
      "layer": "garden",
      "url": "/concepts/con-agents/",
      "markdown": "/concepts/con-agents.md"
    },
    {
      "id": "con-ai-writing-tells",
      "kind": "concept",
      "title": "AI writing tells",
      "summary": "The recognisable habits of AI-generated text, such as stock phrases, tidy groups of three, empty enthusiasm and vague claims, that make writing feel generic and erode readers' trust.",
      "layer": "garden",
      "url": "/concepts/con-ai-writing-tells/",
      "markdown": "/concepts/con-ai-writing-tells.md"
    },
    {
      "id": "con-allocation-economy",
      "kind": "concept",
      "title": "Allocation economy",
      "summary": "Dan Shipper's forecast that as AI does more of the making, people will be valued less for what they know and more for how well they direct models: a clear goal, saying exactly what is wrong with a result, choosing the right model and knowing when to step in.",
      "layer": "garden",
      "url": "/concepts/con-allocation-economy/",
      "markdown": "/concepts/con-allocation-economy.md"
    },
    {
      "id": "con-artifacts",
      "kind": "concept",
      "title": "Artifacts and canvases",
      "summary": "A workspace beside the chat where the AI creates a standalone thing you can see, edit and reuse, such as a document, chart, small web page or interactive tool.",
      "layer": "garden",
      "url": "/concepts/con-artifacts/",
      "markdown": "/concepts/con-artifacts.md"
    },
    {
      "id": "con-automation",
      "kind": "concept",
      "title": "Automation",
      "summary": "Setting AI up to handle a repeatable job on its own, triggered by a time or an event like a new form entry, so the work happens without you starting it each time.",
      "layer": "garden",
      "url": "/concepts/con-automation/",
      "markdown": "/concepts/con-automation.md"
    },
    {
      "id": "con-centaurs-and-cyborgs",
      "kind": "concept",
      "title": "Centaurs and cyborgs",
      "summary": "Ethan Mollick's names for two ways of working well with AI: centaurs split a job, keeping some tasks and handing others to AI, while cyborgs go back and forth with it inside a single task. Vivienne Ming adds a weaker third style, the self-automator, who hands over the thinking.",
      "layer": "garden",
      "url": "/concepts/con-centaurs-and-cyborgs/",
      "markdown": "/concepts/con-centaurs-and-cyborgs.md"
    },
    {
      "id": "con-clarifying-questions",
      "kind": "concept",
      "title": "Clarifying questions",
      "summary": "Asking the AI to question you about the task before it starts, so gaps in your request surface early and you make the decisions the AI would otherwise guess at.",
      "layer": "garden",
      "url": "/concepts/con-clarifying-questions/",
      "markdown": "/concepts/con-clarifying-questions.md"
    },
    {
      "id": "con-cognitive-offloading",
      "kind": "concept",
      "title": "Cognitive offloading",
      "summary": "Handing mental work to a tool. It frees attention, but when you hand over the thinking you need to learn or judge, your own skill and judgment can weaken.",
      "layer": "garden",
      "url": "/concepts/con-cognitive-offloading/",
      "markdown": "/concepts/con-cognitive-offloading.md"
    },
    {
      "id": "con-compound-loop",
      "kind": "concept",
      "title": "Compounding loop",
      "summary": "After each piece of AI work, writing down what you learned where the AI will read it next time, such as a line in its instructions, a saved example or a new check, so you don't catch the same mistake twice. Named \"compound engineering\" by Kieran Klaassen at Every.",
      "layer": "garden",
      "url": "/concepts/con-compound-loop/",
      "markdown": "/concepts/con-compound-loop.md"
    },
    {
      "id": "con-context-engineering",
      "kind": "concept",
      "title": "Context engineering",
      "summary": "Choosing and arranging everything the AI can see, such as instructions, examples, files, past messages and connected data, so it has what it needs for the task and little that distracts it.",
      "layer": "garden",
      "url": "/concepts/con-context-engineering/",
      "markdown": "/concepts/con-context-engineering.md"
    },
    {
      "id": "con-context-window",
      "kind": "concept",
      "title": "Context window",
      "summary": "The amount of material an AI can hold in view during one conversation. Anything beyond it gets dropped or summarised, and very long chats can make earlier details easier to lose.",
      "layer": "garden",
      "url": "/concepts/con-context-window/",
      "markdown": "/concepts/con-context-window.md"
    },
    {
      "id": "con-custom-assistants",
      "kind": "concept",
      "title": "Custom assistants",
      "summary": "A version of an AI tool set up for one purpose, with its own instructions, files and sometimes tools, that you or others can open and use without setting it up again.",
      "layer": "garden",
      "url": "/concepts/con-custom-assistants/",
      "markdown": "/concepts/con-custom-assistants.md"
    },
    {
      "id": "con-custom-instructions",
      "kind": "concept",
      "title": "Custom instructions",
      "summary": "Standing instructions you save once, such as your role, preferred tone or formatting rules, that the AI applies to every conversation so you don't repeat yourself.",
      "layer": "garden",
      "url": "/concepts/con-custom-instructions/",
      "markdown": "/concepts/con-custom-instructions.md"
    },
    {
      "id": "con-deep-research",
      "kind": "concept",
      "title": "Deep research",
      "summary": "An AI mode that spends several minutes searching many sources, reading and cross-checking them, and returns a longer cited report on a question.",
      "layer": "garden",
      "url": "/concepts/con-deep-research/",
      "markdown": "/concepts/con-deep-research.md"
    },
    {
      "id": "con-delegating-to-ai",
      "kind": "concept",
      "title": "Delegating to AI",
      "summary": "Deciding whether a task is worth handing to AI, by weighing how long it takes you against how often the AI gets it right and how long asking and checking take, then handing it over with a brief like you'd give a colleague. Framed this way by Ethan Mollick.",
      "layer": "garden",
      "url": "/concepts/con-delegating-to-ai/",
      "markdown": "/concepts/con-delegating-to-ai.md"
    },
    {
      "id": "con-evals",
      "kind": "concept",
      "title": "Evals",
      "summary": "A small, reusable set of test tasks with known good answers that you run an AI setup against, so you can tell whether it works and whether a change made it better or worse.",
      "layer": "garden",
      "url": "/concepts/con-evals/",
      "markdown": "/concepts/con-evals.md"
    },
    {
      "id": "con-examples-in-prompts",
      "kind": "concept",
      "title": "Examples in prompts",
      "summary": "Showing the AI one or more samples of what you want, such as a past email or a filled-in table, so it can match the pattern you show it.",
      "layer": "garden",
      "url": "/concepts/con-examples-in-prompts/",
      "markdown": "/concepts/con-examples-in-prompts.md"
    },
    {
      "id": "con-generative-ai",
      "kind": "concept",
      "title": "Generative AI",
      "summary": "Software that produces new text, images, audio or code in response to a request, by learning patterns from huge amounts of existing material. It drafts quickly, and you still judge the draft.",
      "layer": "garden",
      "url": "/concepts/con-generative-ai/",
      "markdown": "/concepts/con-generative-ai.md"
    },
    {
      "id": "con-hallucination",
      "kind": "concept",
      "title": "Hallucination",
      "summary": "When AI states something false or invented, such as a statistic, quote, source or policy detail, with the same confidence as something true.",
      "layer": "garden",
      "url": "/concepts/con-hallucination/",
      "markdown": "/concepts/con-hallucination.md"
    },
    {
      "id": "con-human-in-the-loop",
      "kind": "concept",
      "title": "Human in the loop",
      "summary": "Designing AI work so a person reviews or approves at the points that matter, especially before anything is sent, published, paid or deleted.",
      "layer": "garden",
      "url": "/concepts/con-human-in-the-loop/",
      "markdown": "/concepts/con-human-in-the-loop.md"
    },
    {
      "id": "con-jagged-frontier",
      "kind": "concept",
      "title": "Jagged frontier",
      "summary": "The uneven line between tasks AI does well and tasks it does badly, which often doesn't match human intuition about what is hard, so you have to test it on your own tasks.",
      "layer": "garden",
      "url": "/concepts/con-jagged-frontier/",
      "markdown": "/concepts/con-jagged-frontier.md"
    },
    {
      "id": "con-large-language-model",
      "kind": "concept",
      "title": "Large language model",
      "summary": "The engine behind AI chat tools: a system trained on vast amounts of text to predict what words should come next, which turns out to be enough to write, summarise, translate and reason in useful ways.",
      "layer": "garden",
      "url": "/concepts/con-large-language-model/",
      "markdown": "/concepts/con-large-language-model.md"
    },
    {
      "id": "con-mcp",
      "kind": "concept",
      "title": "Model Context Protocol (MCP)",
      "summary": "An open standard for connecting AI tools to other software and data, so a connector built once works in every AI product that supports the standard.",
      "layer": "garden",
      "url": "/concepts/con-mcp/",
      "markdown": "/concepts/con-mcp.md"
    },
    {
      "id": "con-memory",
      "kind": "concept",
      "title": "Memory",
      "summary": "A feature that lets an AI carry details about you and your past conversations into new ones, so it can personalise answers without you repeating yourself.",
      "layer": "garden",
      "url": "/concepts/con-memory/",
      "markdown": "/concepts/con-memory.md"
    },
    {
      "id": "con-model-choice",
      "kind": "concept",
      "title": "Model choice",
      "summary": "Picking which AI model, or which tool, to use for a given job, based on what it is good at, how fast and costly it is, and how much is at stake.",
      "layer": "garden",
      "url": "/concepts/con-model-choice/",
      "markdown": "/concepts/con-model-choice.md"
    },
    {
      "id": "con-multimodal",
      "kind": "concept",
      "title": "Multimodal AI",
      "summary": "AI that can take in or produce more than text, such as photos, screenshots, PDFs, voice, audio and video, so you can show it the problem as well as describe it.",
      "layer": "garden",
      "url": "/concepts/con-multimodal/",
      "markdown": "/concepts/con-multimodal.md"
    },
    {
      "id": "con-onboard-ai-like-a-new-hire",
      "kind": "concept",
      "title": "Onboard AI like a new hire",
      "summary": "Setting up an AI assistant or agent the way you'd bring on a new colleague: a role and ways of working, background on the organisation, its own limited accounts, and more access only as it proves reliable. Described by Tal Raviv for copilots and by Claire Vo for personal agents.",
      "layer": "garden",
      "url": "/concepts/con-onboard-ai-like-a-new-hire/",
      "markdown": "/concepts/con-onboard-ai-like-a-new-hire.md"
    },
    {
      "id": "con-privacy-and-data",
      "kind": "concept",
      "title": "Privacy and data",
      "summary": "Knowing what information is safe to share with an AI tool, how that tool stores and uses it, and which settings and account types protect you, your organisation and the people you serve.",
      "layer": "garden",
      "url": "/concepts/con-privacy-and-data/",
      "markdown": "/concepts/con-privacy-and-data.md"
    },
    {
      "id": "con-productive-friction",
      "kind": "concept",
      "title": "Productive friction",
      "summary": "Deliberately adding a small amount of effort to working with AI, such as drafting first, predicting before the reveal or asking it to argue back, so you think the problem through before accepting an answer.",
      "layer": "garden",
      "url": "/concepts/con-productive-friction/",
      "markdown": "/concepts/con-productive-friction.md"
    },
    {
      "id": "con-projects-and-knowledge",
      "kind": "concept",
      "title": "Projects and knowledge",
      "summary": "A workspace where you keep the files, instructions and chats for one body of work together, so every conversation in it starts with the same background.",
      "layer": "garden",
      "url": "/concepts/con-projects-and-knowledge/",
      "markdown": "/concepts/con-projects-and-knowledge.md"
    },
    {
      "id": "con-prompt-engineering",
      "kind": "concept",
      "title": "Prompt engineering",
      "summary": "The early practice of finding special wording, templates and tricks to coax better answers from AI. Much of it matters less as models improve; its lasting core lives on in context engineering.",
      "layer": "garden",
      "url": "/concepts/con-prompt-engineering/",
      "markdown": "/concepts/con-prompt-engineering.md"
    },
    {
      "id": "con-prompt-injection",
      "kind": "concept",
      "title": "Prompt injection",
      "summary": "Anything an AI reads while working, such as an email, web page, calendar invite or document, can contain words written to look like orders. A safe setup treats that text as information and takes instructions only from you, through channels you chose.",
      "layer": "garden",
      "url": "/concepts/con-prompt-injection/",
      "markdown": "/concepts/con-prompt-injection.md"
    },
    {
      "id": "con-prompting",
      "kind": "concept",
      "title": "Prompting",
      "summary": "Telling an AI what you want in plain words: the task, who it is for, what good looks like and any limits. Clear requests get better results than clever wording.",
      "layer": "garden",
      "url": "/concepts/con-prompting/",
      "markdown": "/concepts/con-prompting.md"
    },
    {
      "id": "con-reasoning-models",
      "kind": "concept",
      "title": "Reasoning models",
      "summary": "Models that work through a problem step by step before answering, trading speed for better results on tasks like analysis, planning, maths and multi-step decisions.",
      "layer": "garden",
      "url": "/concepts/con-reasoning-models/",
      "markdown": "/concepts/con-reasoning-models.md"
    },
    {
      "id": "con-scheduled-tasks",
      "kind": "concept",
      "title": "Scheduled tasks",
      "summary": "Asking an AI to run a prompt or job automatically at a set time or on a repeat, such as a Monday news digest or a daily inbox summary, without you starting it each time.",
      "layer": "garden",
      "url": "/concepts/con-scheduled-tasks/",
      "markdown": "/concepts/con-scheduled-tasks.md"
    },
    {
      "id": "con-skills",
      "kind": "concept",
      "title": "Skills",
      "summary": "Packaged instructions, examples and sometimes small tools for one kind of task, which the AI loads only when that task comes up, so a proven way of working can be reused and shared.",
      "layer": "garden",
      "url": "/concepts/con-skills/",
      "markdown": "/concepts/con-skills.md"
    },
    {
      "id": "con-smallest-useful-version",
      "kind": "concept",
      "title": "Smallest useful version",
      "summary": "The simplest thing that solves part of your problem, built first and tried for real before adding anything more.",
      "layer": "garden",
      "url": "/concepts/con-smallest-useful-version/",
      "markdown": "/concepts/con-smallest-useful-version.md"
    },
    {
      "id": "con-solution-ladder",
      "kind": "concept",
      "title": "Solution ladder",
      "summary": "A way to choose how to solve a problem by climbing from the simplest option (paper, a document or sheet, a prompt) toward an agent or an app, and stopping at the lowest rung that works.",
      "layer": "garden",
      "url": "/concepts/con-solution-ladder/",
      "markdown": "/concepts/con-solution-ladder.md"
    },
    {
      "id": "con-steering",
      "kind": "concept",
      "title": "Steering",
      "summary": "Directing AI work as it happens: setting the goal and limits, approving one step at a time, correcting course early and cutting anything it does beyond what you need.",
      "layer": "garden",
      "url": "/concepts/con-steering/",
      "markdown": "/concepts/con-steering.md"
    },
    {
      "id": "con-sycophancy",
      "kind": "concept",
      "title": "Sycophancy",
      "summary": "The tendency of AI to agree with you, praise your ideas and soften bad news, even when you're wrong, because it was trained partly on what people rate highly.",
      "layer": "garden",
      "url": "/concepts/con-sycophancy/",
      "markdown": "/concepts/con-sycophancy.md"
    },
    {
      "id": "con-tools-and-connectors",
      "kind": "concept",
      "title": "Tools and connectors",
      "summary": "Ways for an AI to do more than write: search the web, read your email or calendar, look in shared drives, or take actions in other apps, using access you grant.",
      "layer": "garden",
      "url": "/concepts/con-tools-and-connectors/",
      "markdown": "/concepts/con-tools-and-connectors.md"
    },
    {
      "id": "con-verification",
      "kind": "concept",
      "title": "Verification",
      "summary": "Checking what AI gives you against something real, such as the source, the data, an expert or your own knowledge, before you rely on it or pass it on.",
      "layer": "garden",
      "url": "/concepts/con-verification/",
      "markdown": "/concepts/con-verification.md"
    },
    {
      "id": "con-vibe-coding",
      "kind": "concept",
      "title": "Vibe coding",
      "summary": "Building working software by describing what you want in plain language and letting AI write the code, while you test, steer and decide what it should do.",
      "layer": "garden",
      "url": "/concepts/con-vibe-coding/",
      "markdown": "/concepts/con-vibe-coding.md"
    },
    {
      "id": "prj-ai-style-guide-from-your-samples",
      "kind": "project",
      "title": "Build a style guide so AI drafts sound like you",
      "summary": "A one-page style guide, built from your own writing, that you paste into an AI tool before it drafts for you, so you spend less time rewriting its drafts into your voice.",
      "layer": "garden",
      "url": "/projects/prj-ai-style-guide-from-your-samples/",
      "markdown": "/projects/prj-ai-style-guide-from-your-samples.md"
    },
    {
      "id": "prj-ask-ai-where-your-draft-misleads",
      "kind": "project",
      "title": "Ask AI to find where your draft misleads",
      "summary": "A draft you wrote yourself, revised by you after an AI pointed out every place it overstates, misleads or oversimplifies, with a record of which criticisms you accepted and why.",
      "layer": "garden",
      "url": "/projects/prj-ask-ai-where-your-draft-misleads/",
      "markdown": "/projects/prj-ask-ai-where-your-draft-misleads.md"
    },
    {
      "id": "prj-compare-models-on-a-real-task",
      "kind": "project",
      "title": "Compare AI tools on a task you actually do",
      "summary": "A choice of AI tool for one recurring task, based on a rubric you wrote before seeing any answers rather than habit, rankings or which answer sounded most confident.",
      "layer": "garden",
      "url": "/projects/prj-compare-models-on-a-real-task/",
      "markdown": "/projects/prj-compare-models-on-a-real-task.md"
    },
    {
      "id": "prj-delegation-brief-for-an-agent",
      "kind": "project",
      "title": "Write a handover brief before you give an agent a real task",
      "summary": "One task handed to an AI agent with a written brief, a decision about whether it was worth handing over, and a check of the result against the \"done\" line you wrote in advance.",
      "layer": "garden",
      "url": "/projects/prj-delegation-brief-for-an-agent/",
      "markdown": "/projects/prj-delegation-brief-for-an-agent.md"
    },
    {
      "id": "prj-devils-advocate-for-a-team-decision",
      "kind": "project",
      "title": "Ask AI to play devil's advocate on a team decision",
      "summary": "A team decision that has been questioned before you commit to it, with a short table of the assumptions it rests on and one change or check you'll make because of them.",
      "layer": "garden",
      "url": "/projects/prj-devils-advocate-for-a-team-decision/",
      "markdown": "/projects/prj-devils-advocate-for-a-team-decision.md"
    },
    {
      "id": "prj-onboard-an-ai-copilot",
      "kind": "project",
      "title": "Hire and onboard an AI copilot for one piece of work",
      "summary": "An AI project that knows your role, your goals and one live initiative well enough to ask useful questions, push back on a weak plan, and suggest a next step you can judge against your own.",
      "layer": "garden",
      "url": "/projects/prj-onboard-an-ai-copilot/",
      "markdown": "/projects/prj-onboard-an-ai-copilot.md"
    },
    {
      "id": "prj-plan-with-clarifying-questions",
      "kind": "project",
      "title": "Let AI ask before it plans",
      "summary": "A plan for a real piece of work that fits your situation on the first or second try, because the details that were in your head made it into the request.",
      "layer": "garden",
      "url": "/projects/prj-plan-with-clarifying-questions/",
      "markdown": "/projects/prj-plan-with-clarifying-questions.md"
    },
    {
      "id": "prj-teach-your-assistant-your-jargon",
      "kind": "project",
      "title": "Teach your AI assistant your team's jargon, one confirmed term at a time",
      "summary": "A short glossary of your team's internal terms that the AI found in your own notes, guessed at, and saved only after you confirmed or corrected each one, so later answers stop misreading your shorthand.",
      "layer": "garden",
      "url": "/projects/prj-teach-your-assistant-your-jargon/",
      "markdown": "/projects/prj-teach-your-assistant-your-jargon.md"
    },
    {
      "id": "prj-weekly-status-from-notes",
      "kind": "project",
      "title": "Turn messy notes into a status draft you can check",
      "summary": "A weekly status update that takes less time to write, points to the note behind every claim, and flags what is missing or contradictory instead of smoothing it over.",
      "layer": "garden",
      "url": "/projects/prj-weekly-status-from-notes/",
      "markdown": "/projects/prj-weekly-status-from-notes.md"
    },
    {
      "id": "prj-write-a-build-readme-before-you-vibe-code",
      "kind": "project",
      "title": "Write a one-page build plan before you ask AI to make an app",
      "summary": "A one-page plan for a small app, with what it must do, what it leaves out and three milestones, that you can hand to any AI app builder so the first version matches what you meant and is easy to check.",
      "layer": "garden",
      "url": "/projects/prj-write-a-build-readme-before-you-vibe-code/",
      "markdown": "/projects/prj-write-a-build-readme-before-you-vibe-code.md"
    },
    {
      "id": "practice-coach",
      "kind": "skill",
      "title": "practice-coach",
      "summary": "A coach for learning to build with AI by improving real work. Use when someone wants help getting better at using AI, says \"coach me\", \"help me learn\", \"how should I use AI for this\", \"where do I start\", asks which AI skill or approach fits their task, or wants to turn a work problem into something they can try. Picks the right AI Practice Commons skill, keeps the person doing the thinking, and names the habit behind a good result.",
      "layer": "garden",
      "url": "/skills/practice-coach/",
      "markdown": "/skills/practice-coach.md"
    },
    {
      "id": "frame-the-problem",
      "kind": "skill",
      "title": "frame-the-problem",
      "summary": "Turns a vague complaint or big goal into a specific problem, a desired change and a first thing to try. Use when someone says \"I want to use AI for…\", \"I'm drowning in…\", \"help me figure out where to start\", describes a frustration without a clear task, or has a goal too broad to act on. Also raises the ambition by asking what the goal beyond the goal is.",
      "layer": "garden",
      "url": "/skills/frame-the-problem/",
      "markdown": "/skills/frame-the-problem.md"
    },
    {
      "id": "brainstorm",
      "kind": "skill",
      "title": "brainstorm",
      "summary": "Shows what's possible for a goal by generating many varied approaches, building on the person's own ideas first. Use when someone asks \"what could I do with AI for…\", \"give me ideas\", \"brainstorm\", \"what's possible\", or seems stuck on one obvious approach. Flags when ideas start converging and points to real examples from the commons.",
      "layer": "garden",
      "url": "/skills/brainstorm/",
      "markdown": "/skills/brainstorm.md"
    },
    {
      "id": "build-brief",
      "kind": "skill",
      "title": "build-brief",
      "summary": "Plans a small AI build before anything gets built. Picks the simplest approach that works (paper, a document or spreadsheet, a prompt, an agent or an app), writes what it must do, what can wait and how to tell if it helped, then has AI propose a plan and wait for approval of the first step. Use when someone has an idea and is about to ask AI to build, automate or write something substantial, or says \"plan this\", \"scope this\", \"help me build…\".",
      "layer": "garden",
      "url": "/skills/build-brief/",
      "markdown": "/skills/build-brief.md"
    },
    {
      "id": "expert-council",
      "kind": "skill",
      "title": "expert-council",
      "summary": "Vets an idea, plan, draft or decision from three to five relevant perspectives, each saying what it would do and what worries it, and ends with where they agree and disagree. Modes include a pre-mortem (\"it failed — why?\") and devil's advocate. Use when someone says \"poke holes in this\", \"what am I missing\", \"stress-test this\", \"is this a good idea\", \"pre-mortem\", or is about to commit to something consequential.",
      "layer": "garden",
      "url": "/skills/expert-council/",
      "markdown": "/skills/expert-council.md"
    },
    {
      "id": "prove-it",
      "kind": "skill",
      "title": "prove-it",
      "summary": "Checks an AI result against something real before you trust it or pass it on, using the source, the actual number, or a rerun with one thing changed, and says what evidence would change the answer. Use when someone is about to send, publish, decide on or reuse an AI output, asks \"is this right?\", \"can I trust this?\", \"check this\", \"verify\", or when an output looks polished and contains numbers, names, quotes or claims that matter.",
      "layer": "garden",
      "url": "/skills/prove-it/",
      "markdown": "/skills/prove-it.md"
    },
    {
      "id": "stuck-or-pivot",
      "kind": "skill",
      "title": "stuck-or-pivot",
      "summary": "For when an AI build, prompt or workflow isn't working. Separates what was expected from what actually happened and what was seen from what's guessed, runs one test, then helps decide whether to fix it, make it simpler or change the approach. Can also draft a clear help request to a colleague or forum. Use when someone says \"it's not working\", \"I'm stuck\", \"it keeps doing X\", \"should I give up on this\", or has tried the same fix twice.",
      "layer": "garden",
      "url": "/skills/stuck-or-pivot/",
      "markdown": "/skills/stuck-or-pivot.md"
    },
    {
      "id": "make-it-repeatable",
      "kind": "skill",
      "title": "make-it-repeatable",
      "summary": "Turns something that worked once into something reusable (a saved prompt, template, checklist or personal skill) plus a short share-out of what was built and learned, and can draft it as a contribution to AI Practice Commons. Use when someone says \"that worked\", \"I'll need this again\", \"save this\", \"make this a template\", \"how do I do this every week\", \"share what I learned\", or has done the same kind of task with AI more than twice.",
      "layer": "garden",
      "url": "/skills/make-it-repeatable/",
      "markdown": "/skills/make-it-repeatable.md"
    },
    {
      "id": "fld-anthropic-academy-guide",
      "kind": "field",
      "title": "academy-guide",
      "summary": "When you ask how to do something with Claude, points you to matching Claude Academy courses, tutorials and use cases. It complements the commons catalogue, which spans several providers.",
      "layer": "garden",
      "url": "/skills/#fld-anthropic-academy-guide"
    },
    {
      "id": "fld-anthropic-discernment-nudge",
      "kind": "field",
      "title": "discernment-nudge",
      "summary": "After a substantive answer you might act on, adds two or three short questions that help you check key facts, probe the reasoning and notice missing context, at most once per conversation. The commons recommends keeping this light check on all the time.",
      "layer": "garden",
      "url": "/skills/#fld-anthropic-discernment-nudge"
    },
    {
      "id": "fld-anthropic-skill-creator",
      "kind": "field",
      "title": "skill-creator",
      "summary": "Helps you turn a way of working into your own skill, and test whether it does what you meant. Use it after make-it-repeatable.",
      "layer": "garden",
      "url": "/skills/#fld-anthropic-skill-creator"
    },
    {
      "id": "fld-chatprd-plugin",
      "kind": "field",
      "title": "ChatPRD plugin (Cursor, Codex, ChatGPT)",
      "summary": "Seven skills for writing a requirements doc from notes or code, scoring a doc on strategy, structure, clarity and completeness, turning a doc into an interactive page, and checking that what was built matches the doc. The review skill works on a pasted doc without an account; most of the rest expects a coding tool and connects to ChatPRD's own service. New, with few users so far.",
      "layer": "garden",
      "url": "/skills/#fld-chatprd-plugin"
    },
    {
      "id": "fld-evals-skills",
      "kind": "field",
      "title": "evals-skills",
      "summary": "For when something you built with AI runs again and again and needs real testing: reviewing failures, writing judge prompts and checking that your checks are trustworthy. The advanced step after prove-it.",
      "layer": "garden",
      "url": "/skills/#fld-evals-skills"
    },
    {
      "id": "fld-every-compound-engineering",
      "kind": "field",
      "title": "compound-engineering (plugin)",
      "summary": "About 36 skills for AI coding agents, built around a loop: plan, build, review, then write down what you learned so the next job can read it. For people already building software with an agent who want to make the \"save what you learned\" step a habit.",
      "layer": "garden",
      "url": "/skills/#fld-every-compound-engineering"
    },
    {
      "id": "fld-every-draft-review-kit",
      "kind": "field",
      "title": "draft-review-kit",
      "summary": "Review skills for a draft you have already written. Each reviewer has one job: check the argument, read it as a kind non-expert would, flag jargon, cut padding, or look for missing evidence and AI-sounding phrasing. A panel skill combines their notes. Use it before you send something important. One reviewer has a crude name.",
      "layer": "garden",
      "url": "/skills/#fld-every-draft-review-kit"
    },
    {
      "id": "fld-every-ec-public",
      "kind": "field",
      "title": "ec-public (consulting workflows)",
      "summary": "Four skills for everyday client work: a weekly update from material you supply, a proposal from discovery notes, email in a voice you describe, and a review of how a spreadsheet reads to someone new. The weekly update skill is a next step after prj-weekly-status-from-notes. Few people use it yet.",
      "layer": "garden",
      "url": "/skills/#fld-every-ec-public"
    },
    {
      "id": "fld-menkesu-awesome-pm-skills",
      "kind": "field",
      "title": "awesome-pm-skills",
      "summary": "25 workflows that start from something you already have, such as a pricing page, interview notes or a rough feature idea, and turn it into a spec, a research summary or a test plan. Each asks up to four questions to fill gaps, and several can grade a draft you already wrote. Contains guest quotes from Lenny's Podcast that the MIT licence doesn't cover.",
      "layer": "garden",
      "url": "/skills/#fld-menkesu-awesome-pm-skills"
    },
    {
      "id": "fld-no-ai-slop",
      "kind": "field",
      "title": "no-ai-slop",
      "summary": "Finds the patterns that make writing sound machine-made and suggests edits that keep your meaning and tone. Use it before you send or publish anything AI helped you write.",
      "layer": "garden",
      "url": "/skills/#fld-no-ai-slop"
    },
    {
      "id": "fld-peter-yang-human-review",
      "kind": "field",
      "title": "human-review",
      "summary": "Opens a page or document your AI made in the browser, where you edit the text directly and leave comments as you would in a shared doc. It then sends all your feedback to the agent at once, which is quicker and more exact than describing each change in chat.",
      "layer": "garden",
      "url": "/skills/#fld-peter-yang-human-review"
    },
    {
      "id": "fld-peter-yang-patient-brief",
      "kind": "field",
      "title": "fuck-cancer (patient and caregiver brief)",
      "summary": "For someone supporting a person through cancer. It turns the reports and notes you share into a short brief you keep updating: up to three next steps, what is confirmed and what is still unclear, medical terms in plain words, care team contacts and a log of recent updates. It checks against trusted sources such as the National Cancer Institute's summaries and ClinicalTrials.gov. The brief holds health details, so decide where it lives and who sees it. It helps you prepare questions for doctors and does not replace their advice.",
      "layer": "garden",
      "url": "/skills/#fld-peter-yang-patient-brief"
    },
    {
      "id": "fld-refound-lenny-skills",
      "kind": "field",
      "title": "lenny-skills",
      "summary": "About 76 product and team skills, such as writing a requirements doc, running customer interviews, prioritising a roadmap and giving feedback, each built from methods guests described on Lenny's Podcast and Newsletter. Useful once you have a real product or team task. The skills quote guests word for word; MIT covers Refound's text, not those quotes.",
      "layer": "garden",
      "url": "/skills/#fld-refound-lenny-skills"
    },
    {
      "id": "fld-wharton-gail-prompt-library",
      "kind": "field",
      "title": "Wharton Generative AI Labs prompt library",
      "summary": "Seventeen paste-in prompts that set AI up as a coach or role-play partner that asks one question at a time, including a devil's advocate, a team after-action review, a team charter, a meeting facilitator and a tutor. Use them when you want AI to question you instead of answering for you. A public web library, not a code repository, so there is no commit to pin.",
      "layer": "garden",
      "url": "/skills/#fld-wharton-gail-prompt-library"
    },
    {
      "id": "res-anthropic-ai-assistance-skill-formation",
      "kind": "resource",
      "title": "How AI assistance impacts the formation of coding skills",
      "summary": "A controlled experiment in which people learned a new programming tool with or without AI help. Those who leaned on AI scored lower on a follow-up quiz, but people who used AI to ask questions and understand ideas kept their learning and still worked fast. The finding applies beyond coding: the way you use AI affects how much you learn.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-ai-assistance-skill-formation"
    },
    {
      "id": "res-anthropic-ai-capabilities-limitations",
      "kind": "resource",
      "title": "AI Capabilities and Limitations",
      "summary": "A plain-language course on how AI chat tools work: why they predict text, why their knowledge stops at a certain date, how much they can hold in mind at once, and how to figure out what went wrong when an answer surprises you. It is for anyone who uses AI at work or school and wants to judge its output with more confidence.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-ai-capabilities-limitations"
    },
    {
      "id": "res-anthropic-ai-fluency-foundations",
      "kind": "resource",
      "title": "AI Fluency: Framework & Foundations",
      "summary": "A free self-paced course that gives you a simple way to think about working with AI: deciding what to hand over, explaining the job clearly, judging what comes back, and taking responsibility for how you use it. It suits anyone starting out, with no technical background needed, and ends with a short quiz and a badge.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-ai-fluency-foundations"
    },
    {
      "id": "res-anthropic-ai-fluency-index",
      "kind": "resource",
      "title": "The AI Fluency Index",
      "summary": "Anthropic studied about ten thousand real Claude conversations to see which good habits people show. People who kept refining their request were far more likely to question the AI's reasoning, while polished outputs got less scrutiny, and very few people checked facts. Read it for the evidence behind two habits: keep refining your request, and check polished output as closely as rough drafts.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-ai-fluency-index"
    },
    {
      "id": "res-anthropic-ai-fluency-nonprofits",
      "kind": "resource",
      "title": "AI Fluency for Nonprofits",
      "summary": "Applies the AI Fluency habits to nonprofit work such as fundraising, communications, programs and operations. You practise research, writing and data tasks, think through privacy and data handling, and work toward an AI policy for your organisation. Best taken after the Framework & Foundations course.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-ai-fluency-nonprofits"
    },
    {
      "id": "res-anthropic-claude-101",
      "kind": "resource",
      "title": "Claude 101",
      "summary": "A guided tour of Claude for people starting to use it at work. It walks through everyday prompting, then features such as Projects, artifacts, Skills, connectors to other apps and research, with examples by job role.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-claude-101"
    },
    {
      "id": "res-anthropic-education-report-students",
      "kind": "resource",
      "title": "Anthropic Education Report: How university students use Claude",
      "summary": "A look at how university students use Claude. Nearly half of conversations were quick answer-seeking, and the AI was most often doing the higher-level thinking, such as creating and analysing, rather than the student. It asks what students lose when they hand the hard parts to the AI.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-education-report-students"
    },
    {
      "id": "res-anthropic-intro-cowork",
      "kind": "resource",
      "title": "Introduction to Claude Cowork",
      "summary": "Shows people who shuffle information between files, apps and tools how to hand multi-step work to Claude's Cowork mode: setting up a workspace, giving it context, and running tasks on a schedule. No coding needed, but you need a paid Claude plan to follow along.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-intro-cowork"
    },
    {
      "id": "res-anthropic-prompt-design-intro",
      "kind": "resource",
      "title": "Claude Help Center: Introduction to prompt design",
      "summary": "A short help article on writing requests to Claude. Its main point is that Claude knows nothing about you or your task, so you should brief it the way you would brief a new contractor, with clear and specific instructions.",
      "layer": "garden",
      "url": "/catalogue/#res-anthropic-prompt-design-intro"
    },
    {
      "id": "res-google-ai-essentials",
      "kind": "resource",
      "title": "Google AI Essentials",
      "summary": "A short certificate course from Google, delivered through Coursera, for people with no AI experience. It runs across five modules in under five hours. Note that it is paid after a free trial.",
      "layer": "garden",
      "url": "/catalogue/#res-google-ai-essentials"
    },
    {
      "id": "res-google-gemini-prompting-strategies",
      "kind": "resource",
      "title": "Gemini API prompt design strategies",
      "summary": "Google's guide to designing prompts for Gemini, written for developers but readable by confident nontechnical users. It covers giving clear instructions, adding examples, supplying context, breaking a request into parts and iterating on a prompt that isn't working.",
      "layer": "garden",
      "url": "/catalogue/#res-google-gemini-prompting-strategies"
    },
    {
      "id": "res-google-intro-generative-ai",
      "kind": "resource",
      "title": "Introduction to Generative AI",
      "summary": "A 45-minute introductory course explaining what generative AI is, what it is used for, and how it differs from older kinds of machine learning. It ends with a badge and needs no background.",
      "layer": "garden",
      "url": "/catalogue/#res-google-intro-generative-ai"
    },
    {
      "id": "res-google-workspace-gemini-prompting-guide",
      "kind": "resource",
      "title": "Gemini for Workspace prompting guide (PDF)",
      "summary": "A downloadable guide from Google Workspace on writing prompts for Gemini inside everyday office tools. It is aimed at knowledge workers who use Gmail, Docs and similar apps.",
      "layer": "garden",
      "url": "/catalogue/#res-google-workspace-gemini-prompting-guide"
    },
    {
      "id": "res-google-workspace-learning-center",
      "kind": "resource",
      "title": "Google Workspace Learning Center",
      "summary": "Google's help hub for Workspace apps, including how-to material on using Gemini in Docs, Gmail and other tools. Use it to look up a specific task rather than to learn concepts.",
      "layer": "garden",
      "url": "/catalogue/#res-google-workspace-learning-center"
    },
    {
      "id": "res-huggingface-agents-course-intro",
      "kind": "resource",
      "title": "Agents Course, Unit 0-1 (what an agent is)",
      "summary": "The first units of Hugging Face's free agents course explain what an AI agent is: a model that can plan steps and use tools rather than only answer. The early units are conceptual; the rest of the course is aimed at developers.",
      "layer": "garden",
      "url": "/catalogue/#res-huggingface-agents-course-intro"
    },
    {
      "id": "res-huggingface-huggingchat",
      "kind": "resource",
      "title": "HuggingChat (try open models)",
      "summary": "A chat app where you can talk to many open models, either letting it pick one for you or choosing a model yourself. Use it for practice: try the same task on different models and compare what you get.",
      "layer": "garden",
      "url": "/catalogue/#res-huggingface-huggingchat"
    },
    {
      "id": "res-huggingface-llm-course-intro",
      "kind": "resource",
      "title": "LLM Course, Chapter 1: Transformer models (intro)",
      "summary": "The opening chapter of Hugging Face's free course on large language models, which explains what these models are and what they can do. Curious nontechnical readers can follow this first chapter; later chapters need Python.",
      "layer": "garden",
      "url": "/catalogue/#res-huggingface-llm-course-intro"
    },
    {
      "id": "res-openai-ai-at-work",
      "kind": "resource",
      "title": "OpenAI Academy: Apply AI at Work track",
      "summary": "A hub page collecting OpenAI Academy courses and events on using AI in everyday work, with separate groups for small businesses, nonprofits and government. Use it to find a role-based next step after a beginner course.",
      "layer": "garden",
      "url": "/catalogue/#res-openai-ai-at-work"
    },
    {
      "id": "res-openai-ai-foundations",
      "kind": "resource",
      "title": "OpenAI Academy: AI Foundations",
      "summary": "OpenAI's beginner course for people who use AI at work, which runs inside ChatGPT and ends with a certificate. Details of its contents and access come from secondary sources only, so treat this entry as a pointer until someone checks the course page.",
      "layer": "garden",
      "url": "/catalogue/#res-openai-ai-foundations"
    },
    {
      "id": "res-openai-chatgpt-101-webinar",
      "kind": "resource",
      "title": "ChatGPT 101: A Guide to Your AI Super Assistant (recording)",
      "summary": "A recorded introductory session from OpenAI Academy for people new to ChatGPT. It is a starting point for getting comfortable with the tool before moving on to role-specific material.",
      "layer": "garden",
      "url": "/catalogue/#res-openai-chatgpt-101-webinar"
    },
    {
      "id": "res-openai-nonprofits-club",
      "kind": "resource",
      "title": "OpenAI Academy: Nonprofits club",
      "summary": "An OpenAI Academy community space for nonprofit staff, with dated events and sessions. Useful if you want to learn alongside peers in the sector rather than on your own.",
      "layer": "garden",
      "url": "/catalogue/#res-openai-nonprofits-club"
    },
    {
      "id": "res-openai-prompt-best-practices",
      "kind": "resource",
      "title": "Prompt engineering best practices for ChatGPT",
      "summary": "OpenAI's help-center article on writing better requests to ChatGPT. It is the ChatGPT counterpart to the other providers' prompting guides; its contents have not been checked yet.",
      "layer": "garden",
      "url": "/catalogue/#res-openai-prompt-best-practices"
    },
    {
      "id": "res-other-bastani-guardrails-learning",
      "kind": "resource",
      "title": "Generative AI without guardrails can harm learning",
      "summary": "A field experiment with about a thousand high-school maths students. Plain ChatGPT helped them during practice but left them doing worse on the exam than students without it, because they used it as a crutch. A tutor version with guardrails removed the harm but did not improve results, so guardrails alone don't make people learn.",
      "layer": "garden",
      "url": "/catalogue/#res-other-bastani-guardrails-learning"
    },
    {
      "id": "res-other-bjork-desirable-difficulties",
      "kind": "resource",
      "title": "Making things hard on yourself, but in a good way: Creating desirable difficulties to enhance learning",
      "summary": "A classic, readable chapter from learning science on why some struggle helps you remember: spacing practice out, mixing topics, testing yourself and producing answers before looking them up. Difficulty only helps if you can still succeed, so friction with AI should match the person.",
      "layer": "garden",
      "url": "/catalogue/#res-other-bjork-desirable-difficulties"
    },
    {
      "id": "res-other-claire-vo-adoption-rituals-podcast",
      "kind": "resource",
      "title": "Why \"Get With the Program\" Doesn't Work: Claire Vo on AI That Actually Sticks (Agents of Scale)",
      "summary": "A 51-minute conversation on Zapier's Agents of Scale podcast about why AI mandates and hiring freezes don't get a team using AI, and what does: regular rituals such as AI Fridays and hack weeks, leaders who build things themselves in the open, and treating AI skill as career growth rather than compliance. For anyone who has been asked to \"get the team using AI\".",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-adoption-rituals-podcast"
    },
    {
      "id": "res-other-claire-vo-agent-glossary",
      "kind": "resource",
      "title": "The AI Agent Glossary",
      "summary": "A community glossary, started from a post by Claire Vo, of agent words such as agent, sandbox, context window, system prompt and MCP. Each term has a plain definition and an \"in practice\" example. It is one Markdown file, so you can hand it straight to your own AI. Some examples quote early-2026 prices and older models, so check numbers before you repeat them.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-agent-glossary"
    },
    {
      "id": "res-other-claire-vo-chat-to-reusable-skill",
      "kind": "resource",
      "title": "How to Turn a One-Off AI Chat Session into a Reusable Workflow for Your Team",
      "summary": "Taken from the How I AI episode on Kai, Stripe's internal AI assistant. After a chat that produced something you want again, such as a dashboard, you ask the AI to package the session as a skill, edit its name and trigger phrases, add it to a shared library, then test it in a fresh session. Kai is internal to Stripe; you would need to try the same steps in an assistant that supports skills.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-chat-to-reusable-skill"
    },
    {
      "id": "res-other-claire-vo-cowork-daily-operating-system",
      "kind": "resource",
      "title": "Claude Cowork 101: How to automate your workday without touching code (How I AI, with JJ Englert)",
      "summary": "JJ Englert shows how someone who doesn't code can set up Claude Cowork: a \"brain\" file that tells Claude about you and your work, an email-writing skill built from your own sent mail, a panel of simulated reviewers that critique one draft from several angles, and a read-only morning plan. Good for knowledge workers who already use a chat assistant and want a first repeatable routine.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-cowork-daily-operating-system"
    },
    {
      "id": "res-other-claire-vo-how-i-ai-podcast",
      "kind": "resource",
      "title": "How I AI (podcast)",
      "summary": "A weekly video show hosted by Claire Vo where guests share their screen and show how they use AI in their actual job: product managers, designers, founders, engineers and parents. Because you watch the work happen, it is easier to copy than an interview. For a first episode, pick one aimed at people who don't code, such as the Claude Cowork tutorial with JJ Englert.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-how-i-ai-podcast"
    },
    {
      "id": "res-other-claire-vo-how-i-ai-workflows",
      "kind": "resource",
      "title": "How I AI workflow guides",
      "summary": "About 290 short step-by-step guides, each taken from a How I AI episode where a guest shows a real AI workflow on screen. You can filter by tool, job function (operations, research, content and more) and difficulty, so a beginner can find something small to try this week. Each guide lists the tools, the inputs, the steps and how to check the result.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-how-i-ai-workflows"
    },
    {
      "id": "res-other-claire-vo-how-to-write-a-prd",
      "kind": "resource",
      "title": "How to Write a PRD: A Step-by-Step Guide for Product Managers",
      "summary": "A ten-step guide to writing a product requirements document: the problem, who it is for, goals, user stories, priorities, risks and how to get people to agree, with a good and a bad example and three free templates. It is written for product managers, but anyone who has to describe what should be built before asking a person or an AI to build it can use the problem and goal steps.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-how-to-write-a-prd"
    },
    {
      "id": "res-other-claire-vo-interview-feedback-gpt",
      "kind": "resource",
      "title": "How to Improve Interview Feedback Consistency with a Custom GPT",
      "summary": "A beginner guide to a custom GPT that holds your interview rubric plus strong and weak example scorecards, and reviews how well interviewers wrote up their evidence. The AI is kept to a narrow job: it rates the write-up, never the candidate, makes no hire decision, and flags claims tied to personal characteristics. A reviewer edits its note before sending. A good model for giving AI one bounded job with a rubric.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-interview-feedback-gpt"
    },
    {
      "id": "res-other-claire-vo-openclaw-guide",
      "kind": "resource",
      "title": "OpenClaw: The complete guide to building, training, and living with your personal AI agent",
      "summary": "Claire Vo's guest post on setting up OpenClaw, an open-source personal agent you message through apps such as Telegram. She explains why it should run on a separate machine with its own accounts, how its identity and rules live in a few text files, and six starter jobs such as pre-meeting briefs and weekend logistics. The setup part is free to read; the section on running several agents is for paid subscribers.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-openclaw-guide"
    },
    {
      "id": "res-other-claire-vo-self-improving-pm-system",
      "kind": "resource",
      "title": "Claude Cowork for PMs: My Self-Improving Productivity System (How I AI, with Daniel Blum)",
      "summary": "Daniel Blum, a product manager at Melio, shows a Claude Cowork setup that preps his week, writes a morning brief from meeting notes and messages, and asks him to define internal terms it doesn't know before saving them. A weekly pass compares its drafts with his edits and suggests new skills. Watch it to see an assistant improve through many small confirmed corrections instead of one big setup.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-self-improving-pm-system"
    },
    {
      "id": "res-other-claire-vo-tradclaw",
      "kind": "resource",
      "title": "Tradclaw: a household starter kit for OpenClaw",
      "summary": "A starter set of files for running a personal AI agent as a family manager: calendar briefs, school email triage, meal plans and shopping lists, home maintenance reminders and stories for kids. The agent interviews you first and switches on only the modules you choose. Worth reading for its safety rules even if you never install it: it asks before sharing anything about children, and it never treats text from email, web pages or calendar invites as an instruction.",
      "layer": "garden",
      "url": "/catalogue/#res-other-claire-vo-tradclaw"
    },
    {
      "id": "res-other-every-agent-that-saved-my-brain",
      "kind": "resource",
      "title": "The Agent That Saved My Brain",
      "summary": "Every's head of growth, who says he has no technical background, describes the \"command center\" he built in Claude Code: a set of notes about the business, connections to the tools he uses, and dozens of small skills for jobs he repeats, such as turning a voice note into a campaign brief. He released part of it as the Compound Knowledge plugin. A case study of a non-engineer growing a personal agent one task at a time.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-agent-that-saved-my-brain"
    },
    {
      "id": "res-other-every-ai-style-guide",
      "kind": "resource",
      "title": "AI Style Guides: How to Help AI Write Like You",
      "summary": "A step-by-step guide to writing a style guide that an AI reads before it drafts for you. You gather a few writing samples, let the AI interview you about your voice and what you dislike in AI prose, react to sample lines, and turn the answers into a guide you test and revise over a week. Useful for anyone who keeps rewriting AI drafts to sound like themselves.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-ai-style-guide"
    },
    {
      "id": "res-other-every-allocation-economy",
      "kind": "resource",
      "title": "The Knowledge Economy Is Over. Welcome to the Allocation Economy.",
      "summary": "Dan Shipper argues that as AI takes over more of the making, people get paid less for what they know and more for how well they direct models. He names four skills a \"model manager\" needs: a clear goal, the taste to say exactly what is wrong with a result, judging which model suits which job, and knowing when to get into the details and when to leave the work alone. A short, readable framing for anyone starting to delegate to AI.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-allocation-economy"
    },
    {
      "id": "res-other-every-chatgpt-knowledge-work",
      "kind": "resource",
      "title": "ChatGPT for Knowledge Work",
      "summary": "A guide to using ChatGPT's agent features for office work, split into tasks you can hand off and tasks you should work through together. It moves through five levels from one-off tasks to recurring workflows and ends with a library of sixteen worked workflows, such as a weekly KPI report, a research brief and a recruiting shortlist, plus a seven-day starter plan. For managers and small teams who already use ChatGPT.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-chatgpt-knowledge-work"
    },
    {
      "id": "res-other-every-claude-code-second-brain",
      "kind": "resource",
      "title": "How to Use Claude Code as a Second Brain",
      "summary": "An AI & I episode where Noah Brier shows how he points Claude Code at his folder of notes and tells it he is in \"thinking mode\", so it asks him questions and finds his past research instead of drafting. He keeps a project folder with saved chats, a daily progress log and sources, and asks the agent to recap recent days when he picks the work back up. For people who think through writing and keep notes.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-claude-code-second-brain"
    },
    {
      "id": "res-other-every-compound-engineering-guide",
      "kind": "resource",
      "title": "Compound Engineering",
      "summary": "Every's long guide to working with AI agents so that each job leaves the next one easier. It walks through a plan, work, review and \"compound\" loop, where the last step writes down what you learned so the agent catches the same problem next time, and a six-stage ladder from doing everything by hand to running several agents at once. Written for software teams, but the loop and the ladder carry over to any repeated knowledge work.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-compound-engineering-guide"
    },
    {
      "id": "res-other-every-compound-writing-guide",
      "kind": "resource",
      "title": "Compound Writing: The Ultimate Guide",
      "summary": "Applies the compound loop to writing: interview, outline, draft, review, finish, then save what you learned so the next piece goes faster. It keeps your voice and project rules in plain files the agent reads each time. For people who write at work and are willing to run an agent like Claude Code or Codex.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-compound-writing-guide"
    },
    {
      "id": "res-other-every-eight-levels-ai-adoption",
      "kind": "resource",
      "title": "The Eight Levels of AI Adoption",
      "summary": "Lays out eight levels of handing work to AI, from a chatbot that answers one request, through an agent that checks in before each step and one that works without approvals, up to a manager agent directing others. It says most knowledge workers get the most from the first four levels and that a higher level is not automatically better. Helps you name where you are and what the next step up would ask of you.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-eight-levels-ai-adoption"
    },
    {
      "id": "res-other-every-every-employee-ai-agent",
      "kind": "resource",
      "title": "We Gave Every Employee an AI Agent. Here's What Happened.",
      "summary": "Every's COO and head of platform talk through giving each staff member their own agent. Lessons include starting with personal chores so the value is obvious, running agents in shared channels so people learn from each other and owners stay accountable, and expecting agents in group chats to pile on or loop. They treat it as a culture change, because people differ a lot in how well they delegate.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-every-employee-ai-agent"
    },
    {
      "id": "res-other-every-executive-guide-implementing-ai",
      "kind": "resource",
      "title": "An Executive's Guide to Implementing AI",
      "summary": "A five-step plan for leaders bringing AI into an organisation: use the tools yourself first, give named champions protected time, pick one frequent and painful workflow, build it with good examples, checks and a named owner, then spread what works and drop what fails. It argues for maintained, owned skills libraries over loose prompt collections. For leaders and the operators who run adoption day to day.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-executive-guide-implementing-ai"
    },
    {
      "id": "res-other-every-securing-always-on-agent",
      "kind": "resource",
      "title": "Securing an Always-on AI Employee",
      "summary": "How Every limits the risk of an agent that runs all day with real accounts. It covers three threats (poisoned software packages, instructions hidden in content the agent reads, and leaks of internal data) and four layers of defence: give the agent its own accounts and only the access it needs, add hard blocks it cannot talk its way past, write rules into its instructions, and log everything. Best for whoever decides how much access a team's agent gets.",
      "layer": "garden",
      "url": "/catalogue/#res-other-every-securing-always-on-agent"
    },
    {
      "id": "res-other-kosmyna-your-brain-on-chatgpt",
      "kind": "resource",
      "title": "Your Brain on ChatGPT",
      "summary": "An MIT Media Lab study that measured brain activity while people wrote essays with ChatGPT, a search engine or nothing. The ChatGPT group felt least ownership and often could not quote their own essays. People who wrote alone first and then used AI stayed more engaged, which supports thinking before you prompt.",
      "layer": "garden",
      "url": "/catalogue/#res-other-kosmyna-your-brain-on-chatgpt"
    },
    {
      "id": "res-other-lee-critical-thinking",
      "kind": "resource",
      "title": "The Impact of Generative AI on Critical Thinking",
      "summary": "A survey of 319 knowledge workers about when they think critically while using AI. People who trusted the AI more tended to think less critically, and people more confident in their own skills tended to think more. Their critical effort moved toward checking, combining and overseeing AI work.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lee-critical-thinking"
    },
    {
      "id": "res-other-lenny-ai-agent-categories",
      "kind": "resource",
      "title": "Not all AI agents are created equal",
      "summary": "Sorts agent ideas into three kinds before you compare effort or value: fixed step-by-step automations where AI fills in content at set points, agents that choose their own next step from a set of tools, and networks of agents owned by different teams. The authors advise starting with the first kind for the quickest measurable return. Most of the post, including the third kind, is for paid subscribers.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-ai-agent-categories"
    },
    {
      "id": "res-other-lenny-ai-glossary",
      "kind": "resource",
      "title": "An AI glossary",
      "summary": "Plain-language definitions of about 20 AI terms, from model, token and training to RAG, MCP, agents, evals and hallucination, written for people in meetings where these words fly past. Lenny says he adds terms as new ones appear. If you need text you can reuse, use the open AI Agent Glossary instead.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-ai-glossary"
    },
    {
      "id": "res-other-lenny-ai-prototyping-guide",
      "kind": "resource",
      "title": "A guide to AI prototyping for product managers",
      "summary": "Colin Matthews compares three kinds of tool for turning an idea into a clickable prototype: chat assistants, browser builders such as Bolt, v0, Lovable and Replit, and coding assistants such as Cursor, and says when to use each. He gives prompt templates for common jobs, like turning a sketch or a requirements doc into a prototype, and ways to get unstuck without coding: ask it to reflect, change one thing at a time, be specific, and start fresh when it loses track.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-ai-prototyping-guide"
    },
    {
      "id": "res-other-lenny-build-your-personal-ai-copilot",
      "kind": "resource",
      "title": "Build your personal AI copilot",
      "summary": "Tal Raviv's free guide to using an AI project as a long-term thinking partner at work. You \"hire\" it by writing how it should work with you (including when to push back), onboard it with background on your role, team and goals, kick off one initiative, then keep feeding it updates so its advice gets better. It includes starter prompts and an appendix for tools without a projects feature.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-build-your-personal-ai-copilot"
    },
    {
      "id": "res-other-lenny-data-starter-pack",
      "kind": "resource",
      "title": "Lenny's Data: free public starter pack",
      "summary": "A free sample of Lenny's archive as plain Markdown: 10 newsletter posts and 50 podcast transcripts, with an index of titles, dates and guests. It includes several posts that are otherwise paid, among them the AI prototyping, evals, AI glossary and second-brain guides. Use it to read those posts, or to practise asking your own AI questions over a folder of documents.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-data-starter-pack"
    },
    {
      "id": "res-other-lenny-evals-guide",
      "kind": "resource",
      "title": "Beyond vibe checks: A PM's complete guide to evals",
      "summary": "Aman Khan of Arize AI explains how to test AI output on purpose rather than by feel. He covers what to measure (made-up facts, relevance, tone), a four-part recipe for a prompt that asks one AI to grade another's answer (a role, the text to grade, the goal, and exact definitions of each label), and a cycle of collecting examples, grading them, fixing the prompt and monitoring. The recipe works for anyone who reuses a prompt, not only product teams.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-evals-guide"
    },
    {
      "id": "res-other-lenny-everyone-claude-code",
      "kind": "resource",
      "title": "Everyone should be using Claude Code more",
      "summary": "Lenny walks through installing Claude Code and then collects 50 ways people outside engineering use it: cleaning up messy invoice files, organising folders, synthesising customer-call transcripts, drafting a job description, building slides. Read it for ideas once chat feels comfortable and you want an AI that works on the files on your own computer.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-everyone-claude-code"
    },
    {
      "id": "res-other-lenny-how-i-ai-cowork-roundup",
      "kind": "resource",
      "title": "This week on How I AI: Claude Cowork tutorial for non-engineers + Build your own Slack inbox (for $0)",
      "summary": "A free weekly roundup of two How I AI episodes: JJ Englert's Claude Cowork tutorial for people who don't code, and Yash Tekriwal's custom Slack digest, which cut 100 to 150 daily notifications to about 30 that need attention. Each comes with links to step-by-step workflow write-ups. A quick way to decide whether either episode is worth an hour.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-how-i-ai-cowork-roundup"
    },
    {
      "id": "res-other-lenny-nontechnical-pm-cursor",
      "kind": "resource",
      "title": "The non-technical PM's guide to building with Cursor (Lenny's Podcast, with Zevi Arnovitz)",
      "summary": "Zevi Arnovitz, a product manager at Meta who doesn't write code, shows how he builds working products with Cursor and Claude. Saved commands take him from capturing an idea as an issue, to exploring the problem, writing a plan, building, and asking several different AI models to review the result. He suggests starting in a simple chat project and moving to heavier tools only when you outgrow them.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-nontechnical-pm-cursor"
    },
    {
      "id": "res-other-lenny-pm-second-brain",
      "kind": "resource",
      "title": "How to build your PM second brain with ChatGPT",
      "summary": "Amir Klein, a product manager at monday.com, shows how he set up a ChatGPT Project as a second brain for a new initiative: write instructions that make it challenge him, upload everything he had (docs, decks, exported Slack threads) as files, then ask it to pull together plans and gaps. An appendix covers Claude and Gemini. It is aimed at product managers, but the steps fit anyone juggling scattered context.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-pm-second-brain"
    },
    {
      "id": "res-other-lenny-what-people-vibe-code",
      "kind": "resource",
      "title": "What people are vibe coding (and actually using)",
      "summary": "More than 50 small tools that readers built with Replit, Lovable, Bolt, Cursor and similar and still use: a carb counter, a chore app for kids, a bill splitter, meeting-prep automation, a tracker of wins at work. Each entry names the builder and the tool. Useful for choosing a first build that is small, personal and likely to get used.",
      "layer": "garden",
      "url": "/catalogue/#res-other-lenny-what-people-vibe-code"
    },
    {
      "id": "res-other-ming-fcat-interview",
      "kind": "resource",
      "title": "A Conversation with Dr. Vivienne Ming, author of Robot-Proof",
      "summary": "A short written Q&A from Fidelity's research centre. Ming explains her split between well-posed problems that language models handle well and open problems where people do better, and why the combination beats either alone. Her advice for individuals: map the known part with AI, do your own reasoning on the uncertain part, and question its answers. For leaders: develop curious, humble, adaptable people, since she finds those traits predict who works well with AI.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-fcat-interview"
    },
    {
      "id": "res-other-ming-forecasting-cyborgs-report",
      "kind": "resource",
      "title": "A top researcher says a new divide is emerging in AI use, and most people are on the losing side",
      "summary": "A news report on Ming's forecasting experiment, in which teams predicted real events with or without AI and were compared against Polymarket. She reports that most people either let AI produce the answer or used it to confirm what they already believed. A small minority, roughly 5-10%, argued with it and asked it to explain why they were wrong, and those people did best. The finding is reported in an interview and has not been published as research.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-forecasting-cyborgs-report"
    },
    {
      "id": "res-other-ming-humans-plus-ai-ep13",
      "kind": "resource",
      "title": "Vivienne Ming on hybrid collective intelligence, building cyborgs, meta-uncertainty, and the unknown infinite",
      "summary": "A long interview on the Humans + AI podcast with a full transcript. Ming's test for any tool is whether it leaves you more capable once you switch it off. She suggests pausing to judge your own uncertainty before accepting an answer, using AI to critique your thinking, and treating it like a research assistant you challenge and correct. She also explains why diverse teams produce more novel ideas and why AI tends to make people's ideas more alike.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-humans-plus-ai-ep13"
    },
    {
      "id": "res-other-ming-lewis-silkin-conversation",
      "kind": "resource",
      "title": "In Conversation... with Vivienne Ming",
      "summary": "A 34-minute interview from a law firm's future-of-work series, with a written transcript. Ming describes three ways people use AI: self-automators who hand over the thinking, centaurs who split the work, and cyborgs who actively direct and argue with it. She says only the third makes people better at their jobs. Her practical advice: ask AI to critique your draft and then fix it yourself, and protect the routine tasks junior staff learn from.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-lewis-silkin-conversation"
    },
    {
      "id": "res-other-ming-robot-proof",
      "kind": "resource",
      "title": "Robot-Proof: When Machines Have All the Answers, Build Better People",
      "summary": "Vivienne Ming's 2026 book about people more than machines. She argues that AI handles questions with known answers well, so human value lies in open, ill-posed problems, and in traits such as curiosity, humility and perspective-taking that can be developed. It covers what predicts long-term outcomes for children, what makes teams smart, and why using AI to skip thinking may cost us. For readers who want the case for building people alongside tools.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-robot-proof"
    },
    {
      "id": "res-other-ming-sim-2025-keynote",
      "kind": "resource",
      "title": "The AI That Asks Better Questions: Dr. Vivienne Ming at SIM 2025",
      "summary": "A write-up of Ming's 2025 keynote in Porto. Her line is that AI should make your life harder in ways that make you better. She describes giving her book manuscript to a language model and asking it to find every place she lied, misled or oversimplified, and she says the best AI tutors hold back answers and ask questions. A quick introduction to her case for AI as a critic.",
      "layer": "garden",
      "url": "/catalogue/#res-other-ming-sim-2025-keynote"
    },
    {
      "id": "res-other-mollick-15-times-to-use-ai",
      "kind": "resource",
      "title": "15 Times to use AI, and 5 Not to",
      "summary": "A checklist for deciding whether a task suits AI. Good fits include generating many ideas, work in your own field that you can judge quickly, low-stakes summaries and getting unstuck on a small problem. Poor fits include learning something you need to understand yourself, work that needs very high accuracy, and tasks where the struggle is how you reach the insight.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-15-times-to-use-ai"
    },
    {
      "id": "res-other-mollick-against-brain-damage",
      "kind": "resource",
      "title": "Against \"Brain Damage\"",
      "summary": "Mollick pushes back on headlines claiming AI harms our brains and says the danger is thoughtless use. His practical advice is to come up with your own ideas and drafts first, then bring in AI as a reader, editor or devil's advocate, partly because ideas generated with AI tend to look alike.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-against-brain-damage"
    },
    {
      "id": "res-other-mollick-ai-job-interview",
      "kind": "resource",
      "title": "Giving your AI a Job Interview",
      "summary": "Explains why public benchmark scores tell you little about whether a model suits your work, and suggests testing models the way you'd interview a job candidate: give them realistic tasks from your field, grade the answers blind and repeat on judgment calls. In one test he asked several models to rate a dubious business idea ten times each; each model was consistent, but their scores differed by 3 to 4 points out of 10.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-ai-job-interview"
    },
    {
      "id": "res-other-mollick-assigning-ai",
      "kind": "resource",
      "title": "Assigning AI: Seven Approaches for Students, with Prompts",
      "summary": "Describes seven roles you can give an AI, such as mentor, tutor, coach, teammate, student, simulator and tool, each with example prompts and the risks to watch for. Written for classrooms, but the roles work for anyone deciding how AI should help.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-assigning-ai"
    },
    {
      "id": "res-other-mollick-centaurs-and-cyborgs",
      "kind": "resource",
      "title": "Centaurs and Cyborgs on the Jagged Frontier",
      "summary": "Mollick's plain-language account of a 2023 experiment with 758 Boston Consulting Group consultants. With GPT-4, they finished more tasks, faster and to a higher standard, but on one task the AI got wrong they did worse than colleagues working alone. The post names two ways of working well with AI: centaurs split tasks between person and AI, and cyborgs weave the two together.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-centaurs-and-cyborgs"
    },
    {
      "id": "res-other-mollick-choosing-to-stay-human",
      "kind": "resource",
      "title": "Choosing to Stay Human",
      "summary": "Ethan Mollick argues that the risk lies in using AI on autopilot, and pulls together studies showing that skipping effort means skipping learning. He points readers to the tutoring modes now built into chat tools and asks everyone to keep deciding what to hand over and what to keep for themselves.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-choosing-to-stay-human"
    },
    {
      "id": "res-other-mollick-co-intelligence",
      "kind": "resource",
      "title": "Co-Intelligence: Living and Working with AI",
      "summary": "Mollick's 2024 book for general readers on working alongside AI as a coworker, tutor, coach and creative partner. It is best known for four rules, roughly: always invite AI to the table, be the human in the loop, treat AI like a person but tell it what kind of person it is, and assume this is the worst AI you will ever use. A good single read for someone who wants the big picture before practising.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-co-intelligence"
    },
    {
      "id": "res-other-mollick-cybernetic-teammate",
      "kind": "resource",
      "title": "The Cybernetic Teammate",
      "summary": "Reports a randomised trial with 776 Procter & Gamble professionals working on real product development tasks. One person working with AI did about as well as a two-person team without it, and teams with AI were the most likely to produce top-ranked ideas. AI users also finished 12-16% faster and reported feeling more positive. Useful for team leads deciding how AI should fit into group work.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-cybernetic-teammate"
    },
    {
      "id": "res-other-mollick-gail-prompt-library",
      "kind": "resource",
      "title": "Wharton Generative AI Labs Prompt Library",
      "summary": "Seventeen tested prompts you paste into a chat tool, each of which sets the AI up as a coach, tutor or role-play partner that asks one question at a time. Examples include a devil's advocate for a team decision, a team after-action review, a team charter, a meeting midpoint facilitator, a problem-reframing prompt and builders that help you make your own tutor or simulation. Most were written for teaching, but about half are tagged for professional use.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-gail-prompt-library"
    },
    {
      "id": "res-other-mollick-good-enough-prompting",
      "kind": "resource",
      "title": "Getting started with AI: Good enough prompting",
      "summary": "A short starter guide for people who feel they need to learn prompt engineering first. Mollick says to treat the AI like a capable new coworker who forgets everything between chats: give context, say who the work is for, ask for many options and keep talking. His main instruction is to spend about ten hours using it on real tasks in your own field, where you can spot its mistakes.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-good-enough-prompting"
    },
    {
      "id": "res-other-mollick-instructors-as-innovators",
      "kind": "resource",
      "title": "Instructors as Innovators: A future-focused approach to new AI learning opportunities, with prompts",
      "summary": "A 76-page guide with ready-to-use prompts for AI exercises: simulations, mentoring, coaching and co-creation, each with notes on how to run it, how to assess it and what can go wrong. It also includes \"blueprint\" prompts that interview you and then write a custom prompt for your own topic. Written for teachers, but useful to anyone who trains or coaches colleagues.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-instructors-as-innovators"
    },
    {
      "id": "res-other-mollick-leadership-lab-crowd",
      "kind": "resource",
      "title": "Making AI Work: Leadership, Lab, and Crowd",
      "summary": "A plan for bringing AI into an organisation through three groups. Leaders describe what an AI-enabled workplace will look like and promise that sharing productivity gains won't cost people their jobs. Employees experiment in their own work and share what works. A small lab team turns the best of it into tools and tests. He points out that many workers use AI without telling anyone, and the organisation can't learn from use it doesn't know about.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-leadership-lab-crowd"
    },
    {
      "id": "res-other-mollick-management-as-ai-superpower",
      "kind": "resource",
      "title": "Management as AI superpower",
      "summary": "Argues that working with AI agents mostly uses ordinary management skills: delegating, giving clear instructions and judging the work. Mollick offers a quick test for whether to delegate (how long the task takes you, how often the AI gets it right, how long asking and checking take) and lists what a good handover covers: the goal and why, limits on authority, what done looks like, checkpoints and a self-check. Includes a class where executive MBA students, most of whom had never coded, built working startup prototypes in four days.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-management-as-ai-superpower"
    },
    {
      "id": "res-other-mollick-which-ai-summer-2026",
      "kind": "resource",
      "title": "An opinionated guide to which AI to use to do stuff (Summer 2026 Edition)",
      "summary": "Mollick's mid-2026 buyer's guide for people who aren't developers. He matches tools to jobs: free chatbots for low-stakes questions, the strongest paid models for second opinions, cloud agents such as ChatGPT Work and Claude Cowork for delegated tasks, and local agents such as Codex and Claude Code for large projects. He also says how to start safely: connect only apps you're comfortable with, and keep approvals on for anything that sends, spends or deletes.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-which-ai-summer-2026"
    },
    {
      "id": "res-other-mollick-working-with-wizards",
      "kind": "resource",
      "title": "On Working with Wizards",
      "summary": "As AI produces larger pieces of finished work, you can see less of how it got there, and checking every detail can take as long as doing the job. Mollick suggests deciding when to use AI as a partner you talk with versus a \"wizard\" you hand a whole task to, judging the result, and asking whether it is good enough for this purpose. He also warns that leaning on AI can wear away the expertise you need to check it.",
      "layer": "garden",
      "url": "/catalogue/#res-other-mollick-working-with-wizards"
    },
    {
      "id": "res-other-peter-yang-12-rules-vibe-coding",
      "kind": "resource",
      "title": "12 Rules to Vibe Code Without Frustration",
      "summary": "Peter Yang's tips from more than 50 hours of building apps with AI as someone who doesn't code. The rules start before any code: have the AI write a short readme with requirements and a few milestones, ask for a plan and the simplest options first, then build in small steps, test after each change and roll back when something breaks. A good checklist for a first app build.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-12-rules-vibe-coding"
    },
    {
      "id": "res-other-peter-yang-20-claude-code-tips",
      "kind": "resource",
      "title": "20 Tips to Master Claude Code in 35 Minutes (Build a Real App)",
      "summary": "A product manager's tour of Claude Code while building an app. The free part covers planning before code, asking for the simplest option first, going from spec to to-do list to code, and setting up a project memory file with your preferences. Later tips on debugging and version control are paid.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-20-claude-code-tips"
    },
    {
      "id": "res-other-peter-yang-ai-learning-path",
      "kind": "resource",
      "title": "Introducing My New AI Learning Path and Co-Pilot",
      "summary": "A starting map to Peter Yang's tutorials, sorted into six tracks: a personal AI assistant, career, saving time at work, prototypes and apps, workflows and agents, and building AI products. Each entry is marked if it is a video interview or a paid post. Useful for picking a first tutorial by goal rather than by date.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-ai-learning-path"
    },
    {
      "id": "res-other-peter-yang-behind-the-craft-transcripts",
      "kind": "resource",
      "title": "Behind the Craft — Transcripts",
      "summary": "Full transcripts of Peter Yang's YouTube tutorials and interviews (181 episodes when checked), each tagged with title, guest, date and topics, plus a topic index. You can load the folder into an AI tool and ask questions across all of it. Also a tidy example of publishing your own work in a form AI tools can read.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-behind-the-craft-transcripts"
    },
    {
      "id": "res-other-peter-yang-behind-the-craft-youtube",
      "kind": "resource",
      "title": "Behind the Craft (YouTube channel)",
      "summary": "Peter Yang's channel of practical AI tutorials and interviews with people who build AI products. Many tutorials show a full build on screen in under 30 minutes, such as a slide deck, a research agent or a small app, which makes them easy to follow along with.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-behind-the-craft-youtube"
    },
    {
      "id": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "kind": "resource",
      "title": "ChatGPT vs Claude vs Gemini: The Best AI Model for Each Use Case in 2025",
      "summary": "Peter Yang gives the same tasks to three AI assistants, such as editing his own draft from his writing samples and researching a market, and says which one he would use for each kind of work. The verdicts are from mid-2025 and will age, but the method is worth copying: one real task, the same prompt to each, and a judgement you write down.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-chatgpt-claude-gemini-use-cases"
    },
    {
      "id": "res-other-peter-yang-human-review-skill",
      "kind": "resource",
      "title": "Use My /Human-Review Skill to Edit HTML and Markdown Files Visually",
      "summary": "Introduces a free skill that opens a document or web page your AI made in the browser, where you edit text directly and leave comments as you would in a shared doc, then send all of it to the agent in one batch. It replaces long chat messages like \"in the third paragraph, change X\". For anyone reviewing AI-made plans, pages or copy.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-human-review-skill"
    },
    {
      "id": "res-other-peter-yang-n8n-newsletter-digest",
      "kind": "resource",
      "title": "n8n Tutorial: Build an AI Workflow to Extract Top Insights From All Your Newsletter Emails",
      "summary": "Builds a weekly automation in n8n that collects every email you have labelled as a newsletter, passes them to an AI model with a summary prompt and emails you one digest on Sunday morning. A concrete first automation for anyone drowning in subscriptions, with each node's settings spelled out.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-n8n-newsletter-digest"
    },
    {
      "id": "res-other-peter-yang-slides-claude-code",
      "kind": "resource",
      "title": "Build Beautiful Slides with Claude Code in 12 Minutes (12 Formats + 3 Templates)",
      "summary": "Shows a slide-making skill that takes a rough outline, asks you questions about the content, looks up gaps, builds the deck as a single web page and then screenshots each slide to fix its own layout problems. The habit worth taking away is the last step: have the AI look at what it made and fix it before you see it.",
      "layer": "garden",
      "url": "/catalogue/#res-other-peter-yang-slides-claude-code"
    },
    {
      "id": "res-other-rieseberg-be-ambitious",
      "kind": "resource",
      "title": "How to be more ambitious: A tutorial for humans with models",
      "summary": "A practical essay on asking more of AI. It describes kinds of ambition, such as aiming at the goal behind your goal, asking for a deeper version of a task rather than a bigger one, and having the AI play the real roles of a team. It also advises against letting a model judge its own work.",
      "layer": "garden",
      "url": "/catalogue/#res-other-rieseberg-be-ambitious"
    },
    {
      "id": "res-other-sarkar-challenge-not-obey",
      "kind": "resource",
      "title": "AI Should Challenge, Not Obey",
      "summary": "Advait Sarkar argues that AI should sometimes act as a provocateur, offering counterarguments, critiques and questions instead of finishing your work for you. He also warns that constant criticism gets tiresome, so the challenge has to fit the moment. Short and readable for anyone curious about AI as a tool for thinking.",
      "layer": "garden",
      "url": "/catalogue/#res-other-sarkar-challenge-not-obey"
    },
    {
      "id": "res-perplexity-academy",
      "kind": "resource",
      "title": "Perplexity Academy",
      "summary": "A library of short video lessons, a few minutes each, on using Perplexity's search and its Computer feature for multi-step work. Most lessons are product how-tos rather than general skills.",
      "layer": "garden",
      "url": "/catalogue/#res-perplexity-academy"
    },
    {
      "id": "res-perplexity-at-work",
      "kind": "resource",
      "title": "Perplexity at Work Guide",
      "summary": "A downloadable guide on using Perplexity in daily work, organised around cutting distractions, extending what you can research and write, and reaching concrete outcomes. It reads as product marketing, so use it for ideas rather than method.",
      "layer": "garden",
      "url": "/catalogue/#res-perplexity-at-work"
    },
    {
      "id": "res-perplexity-evaluating-ai-high-stakes",
      "kind": "resource",
      "title": "Evaluating AI for high-stakes work",
      "summary": "A guide for teams in finance, legal and research who must check AI work before it shapes a decision. It reviews output for accuracy, transparency and human oversight, and helps you spot risky workflows and choose what to automate first.",
      "layer": "garden",
      "url": "/catalogue/#res-perplexity-evaluating-ai-high-stakes"
    },
    {
      "id": "res-perplexity-search-vs-computer",
      "kind": "resource",
      "title": "Search vs Computer",
      "summary": "A short lesson on when a quick cited answer is enough and when to hand over a multi-step job that pulls from several tools, builds a report and can run on a schedule. It ends with a simple checklist for choosing between the two.",
      "layer": "garden",
      "url": "/catalogue/#res-perplexity-search-vs-computer"
    },
    {
      "id": "res-xai-grok-bot-use-cases",
      "kind": "resource",
      "title": "Grok Bot use cases",
      "summary": "A page of example roles for xAI's Grok Bot, which gathers and prepares work across connected tools and hands it back for review, with outside actions held for your approval. Examples include sales outreach, recruiting, expenses and a chief-of-staff assistant. Use it for project ideas; it does not teach skills.",
      "layer": "garden",
      "url": "/catalogue/#res-xai-grok-bot-use-cases"
    },
    {
      "id": "res-xai-grok-overview",
      "kind": "resource",
      "title": "Welcome to Grok (consumer docs)",
      "summary": "xAI's overview of the Grok assistant and its features. It describes the product rather than teaching skills, so it is mainly useful when you want to try the same task in Grok as in other assistants.",
      "layer": "garden",
      "url": "/catalogue/#res-xai-grok-overview"
    }
  ],
  "edges": [
    {
      "from": "con-adoption-rituals",
      "to": "con-smallest-useful-version",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-adoption-rituals",
      "to": "con-skills",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-adoption-rituals",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-adoption-rituals",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "con-tools-and-connectors",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "con-reasoning-models",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "con-steering",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-agents",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-agents",
      "to": "con-automation",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-agents",
      "to": "con-vibe-coding",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-agents",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-agents",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-agents",
      "to": "res-anthropic-intro-cowork",
      "type": "implemented_in"
    },
    {
      "from": "con-agents",
      "to": "res-perplexity-search-vs-computer",
      "type": "implemented_in"
    },
    {
      "from": "con-ai-writing-tells",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-ai-writing-tells",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-ai-writing-tells",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-allocation-economy",
      "to": "con-steering",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-allocation-economy",
      "to": "con-model-choice",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-allocation-economy",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-allocation-economy",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-allocation-economy",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-allocation-economy",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-artifacts",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-artifacts",
      "to": "con-smallest-useful-version",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-artifacts",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-artifacts",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-automation",
      "to": "con-tools-and-connectors",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-automation",
      "to": "con-evals",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-automation",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-automation",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "con-jagged-frontier",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "con-cognitive-offloading",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "con-productive-friction",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-centaurs-and-cyborgs",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-clarifying-questions",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-clarifying-questions",
      "to": "con-steering",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-clarifying-questions",
      "to": "con-productive-friction",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-clarifying-questions",
      "to": "con-deep-research",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-clarifying-questions",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-clarifying-questions",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-cognitive-offloading",
      "to": "con-generative-ai",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-cognitive-offloading",
      "to": "con-automation",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-cognitive-offloading",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-cognitive-offloading",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-compound-loop",
      "to": "con-custom-instructions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-compound-loop",
      "to": "con-skills",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-compound-loop",
      "to": "con-memory",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-compound-loop",
      "to": "con-evals",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-compound-loop",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-compound-loop",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-compound-loop",
      "to": "res-other-every-compound-engineering-guide",
      "type": "implemented_in"
    },
    {
      "from": "con-compound-loop",
      "to": "res-other-every-agent-that-saved-my-brain",
      "type": "implemented_in"
    },
    {
      "from": "con-context-engineering",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-context-engineering",
      "to": "con-context-window",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-context-engineering",
      "to": "con-prompt-engineering",
      "type": "evolved_from",
      "symmetric": false
    },
    {
      "from": "con-context-engineering",
      "to": "con-memory",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-context-engineering",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-context-window",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-context-window",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-custom-assistants",
      "to": "con-custom-instructions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-custom-assistants",
      "to": "con-projects-and-knowledge",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-custom-assistants",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-custom-assistants",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-custom-instructions",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-custom-instructions",
      "to": "con-sycophancy",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-custom-instructions",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-custom-instructions",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-deep-research",
      "to": "con-agents",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-deep-research",
      "to": "con-verification",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-deep-research",
      "to": "con-hallucination",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-deep-research",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-deep-research",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-delegating-to-ai",
      "to": "con-jagged-frontier",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-delegating-to-ai",
      "to": "con-agents",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-delegating-to-ai",
      "to": "con-steering",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-delegating-to-ai",
      "to": "con-verification",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-delegating-to-ai",
      "to": "con-solution-ladder",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-delegating-to-ai",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-delegating-to-ai",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-delegating-to-ai",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-evals",
      "to": "con-verification",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-evals",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-evals",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-examples-in-prompts",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-examples-in-prompts",
      "to": "con-ai-writing-tells",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-examples-in-prompts",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-generative-ai",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-generative-ai",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-hallucination",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-hallucination",
      "to": "con-sycophancy",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-hallucination",
      "to": "con-jagged-frontier",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-hallucination",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-human-in-the-loop",
      "to": "con-steering",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-human-in-the-loop",
      "to": "con-automation",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-human-in-the-loop",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-human-in-the-loop",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-human-in-the-loop",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-human-in-the-loop",
      "to": "res-other-peter-yang-human-review-skill",
      "type": "implemented_in"
    },
    {
      "from": "con-jagged-frontier",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-jagged-frontier",
      "to": "con-cognitive-offloading",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-jagged-frontier",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-jagged-frontier",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-jagged-frontier",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-large-language-model",
      "to": "con-generative-ai",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-large-language-model",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-large-language-model",
      "to": "res-huggingface-huggingchat",
      "type": "implemented_in"
    },
    {
      "from": "con-mcp",
      "to": "con-tools-and-connectors",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-mcp",
      "to": "con-tools-and-connectors",
      "type": "evolved_from",
      "symmetric": false
    },
    {
      "from": "con-mcp",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-mcp",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-memory",
      "to": "con-context-window",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-memory",
      "to": "con-custom-instructions",
      "type": "evolved_from",
      "symmetric": false
    },
    {
      "from": "con-memory",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-memory",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-memory",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-model-choice",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-model-choice",
      "to": "con-reasoning-models",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-model-choice",
      "to": "con-jagged-frontier",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-model-choice",
      "to": "con-evals",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-model-choice",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-model-choice",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-model-choice",
      "to": "res-huggingface-huggingchat",
      "type": "implemented_in"
    },
    {
      "from": "con-multimodal",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-multimodal",
      "to": "con-artifacts",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-multimodal",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-custom-instructions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-projects-and-knowledge",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-delegating-to-ai",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-custom-assistants",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "con-agents",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-onboard-ai-like-a-new-hire",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-privacy-and-data",
      "to": "con-generative-ai",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-privacy-and-data",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-productive-friction",
      "to": "con-cognitive-offloading",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-productive-friction",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-productive-friction",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-productive-friction",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-productive-friction",
      "to": "res-other-mollick-gail-prompt-library",
      "type": "implemented_in"
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "con-context-engineering",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "con-custom-instructions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "con-memory",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-projects-and-knowledge",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-prompt-engineering",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-prompt-engineering",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-prompt-injection",
      "to": "con-tools-and-connectors",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-prompt-injection",
      "to": "con-agents",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-prompt-injection",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-prompt-injection",
      "to": "con-human-in-the-loop",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-prompt-injection",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-prompt-injection",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-prompting",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-prompting",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-prompting",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-reasoning-models",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-reasoning-models",
      "to": "con-large-language-model",
      "type": "evolved_from",
      "symmetric": false
    },
    {
      "from": "con-reasoning-models",
      "to": "con-deep-research",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-reasoning-models",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-reasoning-models",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-scheduled-tasks",
      "to": "con-automation",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-scheduled-tasks",
      "to": "con-agents",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-scheduled-tasks",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-scheduled-tasks",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-skills",
      "to": "con-context-engineering",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-skills",
      "to": "con-custom-instructions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-skills",
      "to": "con-automation",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-skills",
      "to": "con-evals",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-skills",
      "to": "con-custom-assistants",
      "type": "parallels",
      "symmetric": true
    },
    {
      "from": "con-skills",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-skills",
      "to": "res-other-every-compound-engineering-guide",
      "type": "implemented_in"
    },
    {
      "from": "con-skills",
      "to": "res-other-every-agent-that-saved-my-brain",
      "type": "implemented_in"
    },
    {
      "from": "con-smallest-useful-version",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-smallest-useful-version",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-solution-ladder",
      "to": "con-smallest-useful-version",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-solution-ladder",
      "to": "con-agents",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-solution-ladder",
      "to": "con-automation",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-solution-ladder",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-solution-ladder",
      "to": "cmp-make-it-repeatable",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-steering",
      "to": "con-prompting",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-steering",
      "to": "con-smallest-useful-version",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-steering",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-steering",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-sycophancy",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-sycophancy",
      "to": "con-productive-friction",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-sycophancy",
      "to": "con-verification",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-sycophancy",
      "to": "con-cognitive-offloading",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-sycophancy",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-sycophancy",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-tools-and-connectors",
      "to": "con-large-language-model",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-tools-and-connectors",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-tools-and-connectors",
      "to": "cmp-describe-the-task",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-tools-and-connectors",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-verification",
      "to": "con-hallucination",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-verification",
      "to": "con-jagged-frontier",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-verification",
      "to": "con-ai-writing-tells",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-verification",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-verification",
      "to": "cmp-use-responsibly",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-verification",
      "to": "res-perplexity-evaluating-ai-high-stakes",
      "type": "implemented_in"
    },
    {
      "from": "con-vibe-coding",
      "to": "con-artifacts",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-vibe-coding",
      "to": "con-steering",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-vibe-coding",
      "to": "con-smallest-useful-version",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "con-vibe-coding",
      "to": "con-solution-ladder",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-vibe-coding",
      "to": "con-privacy-and-data",
      "type": "related",
      "symmetric": true
    },
    {
      "from": "con-vibe-coding",
      "to": "cmp-steering",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-vibe-coding",
      "to": "cmp-frame-the-outcome",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "con-vibe-coding",
      "to": "cmp-check-the-result",
      "type": "part_of",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "con-custom-instructions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "con-examples-in-prompts",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "con-ai-writing-tells",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "con-projects-and-knowledge",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "make-it-repeatable",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "res-other-every-ai-style-guide",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-ai-style-guide-from-your-samples",
      "to": "res-other-every-compound-writing-guide",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "con-productive-friction",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "con-sycophancy",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "con-cognitive-offloading",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "res-other-ming-sim-2025-keynote",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "res-other-ming-lewis-silkin-conversation",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "res-other-ming-humans-plus-ai-ep13",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-ask-ai-where-your-draft-misleads",
      "to": "res-other-mollick-against-brain-damage",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "con-model-choice",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "con-evals",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "con-jagged-frontier",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "con-sycophancy",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "frame-the-problem",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "prj-plan-with-clarifying-questions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "res-perplexity-evaluating-ai-high-stakes",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "res-anthropic-ai-capabilities-limitations",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-compare-models-on-a-real-task",
      "to": "res-huggingface-huggingchat",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-delegating-to-ai",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-agents",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-steering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "con-jagged-frontier",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "prj-plan-with-clarifying-questions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "res-other-mollick-management-as-ai-superpower",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "res-other-mollick-working-with-wizards",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-delegation-brief-for-an-agent",
      "to": "res-other-mollick-which-ai-summer-2026",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "con-productive-friction",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "con-sycophancy",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "expert-council",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "stuck-or-pivot",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "prj-plan-with-clarifying-questions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "res-other-mollick-gail-prompt-library",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "res-other-mollick-cybernetic-teammate",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-devils-advocate-for-a-team-decision",
      "to": "res-other-ming-forecasting-cyborgs-report",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-projects-and-knowledge",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-custom-instructions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-context-engineering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-sycophancy",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-hallucination",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "con-privacy-and-data",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "frame-the-problem",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "res-other-lenny-build-your-personal-ai-copilot",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-onboard-an-ai-copilot",
      "to": "res-other-lenny-pm-second-brain",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "con-context-engineering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "con-prompting",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "con-prompt-engineering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "frame-the-problem",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "res-anthropic-prompt-design-intro",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "res-openai-prompt-best-practices",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-plan-with-clarifying-questions",
      "to": "res-google-workspace-gemini-prompting-guide",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-memory",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-context-engineering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-projects-and-knowledge",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-hallucination",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "make-it-repeatable",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "res-other-claire-vo-self-improving-pm-system",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-teach-your-assistant-your-jargon",
      "to": "res-other-claire-vo-how-i-ai-workflows",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "con-smallest-useful-version",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "con-hallucination",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "con-privacy-and-data",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "frame-the-problem",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "res-anthropic-ai-capabilities-limitations",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-weekly-status-from-notes",
      "to": "res-perplexity-evaluating-ai-high-stakes",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "con-vibe-coding",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "con-smallest-useful-version",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "frame-the-problem",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "build-brief",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "prove-it",
      "type": "uses_skill",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "prj-plan-with-clarifying-questions",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "res-other-peter-yang-12-rules-vibe-coding",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "prj-write-a-build-readme-before-you-vibe-code",
      "to": "res-other-peter-yang-20-claude-code-tips",
      "type": "draws_on",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "con-productive-friction",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "con-cognitive-offloading",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "con-steering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "frame-the-problem",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "brainstorm",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "build-brief",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "expert-council",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "prove-it",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "stuck-or-pivot",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "make-it-repeatable",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "fld-anthropic-discernment-nudge",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "practice-coach",
      "to": "fld-anthropic-academy-guide",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "frame-the-problem",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "frame-the-problem",
      "to": "con-smallest-useful-version",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "frame-the-problem",
      "to": "con-clarifying-questions",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "frame-the-problem",
      "to": "brainstorm",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "frame-the-problem",
      "to": "build-brief",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "con-solution-ladder",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "con-productive-friction",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "frame-the-problem",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "build-brief",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "brainstorm",
      "to": "expert-council",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "con-steering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "con-smallest-useful-version",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "con-solution-ladder",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "con-context-engineering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "frame-the-problem",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "prove-it",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "build-brief",
      "to": "make-it-repeatable",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "con-sycophancy",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "con-human-in-the-loop",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "build-brief",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "expert-council",
      "to": "prove-it",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "con-verification",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "con-hallucination",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "con-evals",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "build-brief",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "make-it-repeatable",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "fld-anthropic-discernment-nudge",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "prove-it",
      "to": "fld-evals-skills",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "con-steering",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "con-solution-ladder",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "build-brief",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "stuck-or-pivot",
      "to": "make-it-repeatable",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "con-automation",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "con-skills",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "con-scheduled-tasks",
      "type": "uses_concept",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "prove-it",
      "type": "builds_on",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "fld-anthropic-skill-creator",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "make-it-repeatable",
      "to": "fld-no-ai-slop",
      "type": "leads_to",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-academy-guide",
      "to": "practice-coach",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-academy-guide",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-discernment-nudge",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-discernment-nudge",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-skill-creator",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-anthropic-skill-creator",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-chatprd-plugin",
      "to": "build-brief",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-chatprd-plugin",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-chatprd-plugin",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-chatprd-plugin",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-evals-skills",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-evals-skills",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-evals-skills",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-evals-skills",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-every-compound-engineering",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-every-compound-engineering",
      "to": "build-brief",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-every-compound-engineering",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-every-compound-engineering",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-every-draft-review-kit",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-every-draft-review-kit",
      "to": "expert-council",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-every-draft-review-kit",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-every-ec-public",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-every-ec-public",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-every-ec-public",
      "to": "cmp-make-it-repeatable",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-menkesu-awesome-pm-skills",
      "to": "build-brief",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-menkesu-awesome-pm-skills",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-menkesu-awesome-pm-skills",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-menkesu-awesome-pm-skills",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-no-ai-slop",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-no-ai-slop",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-no-ai-slop",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-human-review",
      "to": "prove-it",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-human-review",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-human-review",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-patient-brief",
      "to": "frame-the-problem",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-patient-brief",
      "to": "cmp-check-the-result",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-peter-yang-patient-brief",
      "to": "cmp-use-responsibly",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-refound-lenny-skills",
      "to": "frame-the-problem",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-refound-lenny-skills",
      "to": "build-brief",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-refound-lenny-skills",
      "to": "cmp-frame-the-outcome",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-refound-lenny-skills",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-wharton-gail-prompt-library",
      "to": "expert-council",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-wharton-gail-prompt-library",
      "to": "stuck-or-pivot",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-wharton-gail-prompt-library",
      "to": "make-it-repeatable",
      "type": "follows",
      "symmetric": false
    },
    {
      "from": "fld-wharton-gail-prompt-library",
      "to": "cmp-steering",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "fld-wharton-gail-prompt-library",
      "to": "cmp-describe-the-task",
      "type": "practises",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-assistance-skill-formation",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-assistance-skill-formation",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-assistance-skill-formation",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-assistance-skill-formation",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-assistance-skill-formation",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "con-context-window",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "con-hallucination",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-capabilities-limitations",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-foundations",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-index",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-ai-fluency-nonprofits",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-claude-101",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-education-report-students",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-education-report-students",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-education-report-students",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-education-report-students",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-intro-cowork",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-prompt-design-intro",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-anthropic-prompt-design-intro",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-prompt-design-intro",
      "to": "con-prompt-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-anthropic-prompt-design-intro",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-ai-essentials",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-ai-essentials",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-ai-essentials",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-ai-essentials",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-gemini-prompting-strategies",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-gemini-prompting-strategies",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-gemini-prompting-strategies",
      "to": "con-prompt-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-gemini-prompting-strategies",
      "to": "con-examples-in-prompts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-gemini-prompting-strategies",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-intro-generative-ai",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-intro-generative-ai",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-intro-generative-ai",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-intro-generative-ai",
      "to": "con-multimodal",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-workspace-gemini-prompting-guide",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-workspace-gemini-prompting-guide",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-workspace-gemini-prompting-guide",
      "to": "con-prompt-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-google-workspace-learning-center",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-google-workspace-learning-center",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-agents-course-intro",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-huggingface-agents-course-intro",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-agents-course-intro",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-agents-course-intro",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-huggingchat",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-huggingface-huggingchat",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-huggingchat",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-llm-course-intro",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-huggingface-llm-course-intro",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-llm-course-intro",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-huggingface-llm-course-intro",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-at-work",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-at-work",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-at-work",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-at-work",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-foundations",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-foundations",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-ai-foundations",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-chatgpt-101-webinar",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-chatgpt-101-webinar",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-chatgpt-101-webinar",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-nonprofits-club",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-nonprofits-club",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-prompt-best-practices",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-openai-prompt-best-practices",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-openai-prompt-best-practices",
      "to": "con-prompt-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-bastani-guardrails-learning",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-bastani-guardrails-learning",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-bastani-guardrails-learning",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-bastani-guardrails-learning",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-bjork-desirable-difficulties",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-bjork-desirable-difficulties",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-bjork-desirable-difficulties",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-adoption-rituals-podcast",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-adoption-rituals-podcast",
      "to": "con-adoption-rituals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-agent-glossary",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-agent-glossary",
      "to": "con-mcp",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-agent-glossary",
      "to": "con-context-window",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-agent-glossary",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-agent-glossary",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-chat-to-reusable-skill",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-chat-to-reusable-skill",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-chat-to-reusable-skill",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-chat-to-reusable-skill",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-chat-to-reusable-skill",
      "to": "con-compound-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-cowork-daily-operating-system",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-podcast",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-i-ai-workflows",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-to-write-a-prd",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-to-write-a-prd",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-to-write-a-prd",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-how-to-write-a-prd",
      "to": "con-smallest-useful-version",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "con-examples-in-prompts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-interview-feedback-gpt",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-openclaw-guide",
      "to": "con-prompt-injection",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-memory",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-self-improving-pm-system",
      "to": "con-compound-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-memory",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-claire-vo-tradclaw",
      "to": "con-prompt-injection",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-mcp",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-agent-that-saved-my-brain",
      "to": "con-compound-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "con-examples-in-prompts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "con-clarifying-questions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "con-ai-writing-tells",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-ai-style-guide",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-allocation-economy",
      "to": "con-allocation-economy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-chatgpt-knowledge-work",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "con-clarifying-questions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-claude-code-second-brain",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-engineering-guide",
      "to": "con-compound-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-compound-writing-guide",
      "to": "con-compound-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-solution-ladder",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-eight-levels-ai-adoption",
      "to": "con-delegating-to-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "con-memory",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-every-employee-ai-agent",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "con-smallest-useful-version",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-executive-guide-implementing-ai",
      "to": "con-adoption-rituals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-every-securing-always-on-agent",
      "to": "con-prompt-injection",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-kosmyna-your-brain-on-chatgpt",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-kosmyna-your-brain-on-chatgpt",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-kosmyna-your-brain-on-chatgpt",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-kosmyna-your-brain-on-chatgpt",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-kosmyna-your-brain-on-chatgpt",
      "to": "con-ai-writing-tells",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lee-critical-thinking",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lee-critical-thinking",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lee-critical-thinking",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lee-critical-thinking",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lee-critical-thinking",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-agent-categories",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-agent-categories",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-agent-categories",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-agent-categories",
      "to": "con-solution-ladder",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-large-language-model",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-hallucination",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-mcp",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-glossary",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-prototyping-guide",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-prototyping-guide",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-prototyping-guide",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-prototyping-guide",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-ai-prototyping-guide",
      "to": "con-solution-ladder",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-memory",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-build-your-personal-ai-copilot",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-data-starter-pack",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-data-starter-pack",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-data-starter-pack",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-data-starter-pack",
      "to": "con-mcp",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-evals-guide",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-evals-guide",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-evals-guide",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-evals-guide",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-evals-guide",
      "to": "con-hallucination",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-everyone-claude-code",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-everyone-claude-code",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-everyone-claude-code",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-everyone-claude-code",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-how-i-ai-cowork-roundup",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-how-i-ai-cowork-roundup",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-how-i-ai-cowork-roundup",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-how-i-ai-cowork-roundup",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "con-solution-ladder",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-nontechnical-pm-cursor",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-pm-second-brain",
      "to": "con-onboard-ai-like-a-new-hire",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-what-people-vibe-code",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-what-people-vibe-code",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-what-people-vibe-code",
      "to": "con-smallest-useful-version",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-lenny-what-people-vibe-code",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-fcat-interview",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-forecasting-cyborgs-report",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-humans-plus-ai-ep13",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-lewis-silkin-conversation",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-robot-proof",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-robot-proof",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-robot-proof",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-robot-proof",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-robot-proof",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-sim-2025-keynote",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-sim-2025-keynote",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-ming-sim-2025-keynote",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-sim-2025-keynote",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-ming-sim-2025-keynote",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-15-times-to-use-ai",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-against-brain-damage",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-against-brain-damage",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-against-brain-damage",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-against-brain-damage",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-against-brain-damage",
      "to": "con-ai-writing-tells",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-ai-job-interview",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-ai-job-interview",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-ai-job-interview",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-ai-job-interview",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-ai-job-interview",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-assigning-ai",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-assigning-ai",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-assigning-ai",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-assigning-ai",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-assigning-ai",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-centaurs-and-cyborgs",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-choosing-to-stay-human",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-choosing-to-stay-human",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-choosing-to-stay-human",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-choosing-to-stay-human",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-choosing-to-stay-human",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "con-generative-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-co-intelligence",
      "to": "con-centaurs-and-cyborgs",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-cybernetic-teammate",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-cybernetic-teammate",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-cybernetic-teammate",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-cybernetic-teammate",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "con-clarifying-questions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-gail-prompt-library",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "con-prompt-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-good-enough-prompting",
      "to": "con-hallucination",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-instructors-as-innovators",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-leadership-lab-crowd",
      "to": "con-adoption-rituals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-allocation-economy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-management-as-ai-superpower",
      "to": "con-delegating-to-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-which-ai-summer-2026",
      "to": "con-privacy-and-data",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-mollick-working-with-wizards",
      "to": "con-delegating-to-ai",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "con-smallest-useful-version",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-12-rules-vibe-coding",
      "to": "con-multimodal",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "con-custom-instructions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "con-memory",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-20-claude-code-tips",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-ai-learning-path",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-ai-learning-path",
      "to": "con-custom-assistants",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-ai-learning-path",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-ai-learning-path",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-ai-learning-path",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-transcripts",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-transcripts",
      "to": "con-projects-and-knowledge",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-transcripts",
      "to": "con-context-engineering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-transcripts",
      "to": "con-deep-research",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "con-vibe-coding",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-behind-the-craft-youtube",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "to": "con-deep-research",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-chatgpt-claude-gemini-use-cases",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-human-review-skill",
      "to": "con-steering",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-n8n-newsletter-digest",
      "to": "con-context-window",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "con-skills",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "con-clarifying-questions",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "con-artifacts",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-peter-yang-slides-claude-code",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "con-prompting",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-rieseberg-be-ambitious",
      "to": "con-jagged-frontier",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-sarkar-challenge-not-obey",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-sarkar-challenge-not-obey",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-other-sarkar-challenge-not-obey",
      "to": "con-productive-friction",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-sarkar-challenge-not-obey",
      "to": "con-sycophancy",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-other-sarkar-challenge-not-obey",
      "to": "con-cognitive-offloading",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-academy",
      "to": "cmp-describe-the-task",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-perplexity-academy",
      "to": "con-deep-research",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-academy",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-at-work",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-perplexity-at-work",
      "to": "con-deep-research",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-at-work",
      "to": "con-automation",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "cmp-check-the-result",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "cmp-use-responsibly",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "con-verification",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "con-hallucination",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-evaluating-ai-high-stakes",
      "to": "con-evals",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-search-vs-computer",
      "to": "cmp-frame-the-outcome",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-perplexity-search-vs-computer",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-search-vs-computer",
      "to": "con-deep-research",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-search-vs-computer",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-perplexity-search-vs-computer",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "cmp-make-it-repeatable",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "cmp-steering",
      "type": "teaches",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "con-agents",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "con-tools-and-connectors",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "con-human-in-the-loop",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-bot-use-cases",
      "to": "con-scheduled-tasks",
      "type": "explains",
      "symmetric": false
    },
    {
      "from": "res-xai-grok-overview",
      "to": "con-model-choice",
      "type": "explains",
      "symmetric": false
    }
  ],
  "unresolved": []
}