<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Conduction Academy</title>
        <link>https://www.conduction.nl/academy/</link>
        <description>New blogs, guides, case studies, webinars, and tutorials from Conduction.</description>
        <lastBuildDate>Fri, 22 May 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Conduction B.V. © 2026</copyright>
        <item>
            <title><![CDATA[Spec-driven development with OpenSpec — let the AI write the code, you write the context]]></title>
            <link>https://www.conduction.nl/academy/spec-driven-development/</link>
            <guid>https://www.conduction.nl/academy/spec-driven-development/</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Spec-driven development inverts the usual order. You don't sketch the feature, write the code, then maybe document what you built. You write the specification first — in Markdown, with RFC 2119 keywords and GIVEN/WHEN/THEN scenarios — and an AI agent (Hydra) implements code that satisfies it. The human's job moves up a level: you develop context, not code.]]></description>
            <category>App development</category>
            <category>Spec-driven</category>
            <category>OpenSpec</category>
            <category>Hydra</category>
            <category>ADR</category>
            <category>AI</category>
            <category>n8n</category>
            <category>Windmill</category>
            <category>OpenBuilt</category>
        </item>
        <item>
            <title><![CDATA[Build a Nextcloud app on the Conduction stack — Part 6: Integrate]]></title>
            <link>https://www.conduction.nl/academy/deskdesk-tutorial-6-integrate/</link>
            <guid>https://www.conduction.nl/academy/deskdesk-tutorial-6-integrate/</guid>
            <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The sixth and final part of the DeskDesk tutorial. Part 4 packaged the app and put it on the Conduction store; this part makes it talk to the rest of the workspace — three integration patterns layered from least to most invasive. By the end your bookings know who their customer is, every booking shows the right help articles from xWiki, and a needs_repair booking automatically opens a maintenance page in xWiki that flips the booking back to available when the page is marked resolved.]]></description>
            <category>App development</category>
            <category>OpenConnector</category>
            <category>OpenRegister</category>
            <category>Integration</category>
            <category>xWiki</category>
            <category>Webhook</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Build a Nextcloud app on the Conduction stack — Part 5: Advanced manifest features]]></title>
            <link>https://www.conduction.nl/academy/deskdesk-tutorial-5-advanced-manifest/</link>
            <guid>https://www.conduction.nl/academy/deskdesk-tutorial-5-advanced-manifest/</guid>
            <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This is Part 5 of the DeskDesk tutorial. Parts 1–4 got you a working app: scaffold, schemas + manifest, schema-driven Calendar, and a custom Knowledge tab. Part 5 is the "now what" — the v2.7.0 manifest features Parts 1–4 deliberately skipped so the learning curve stayed gentle. You don't need any of them to ship DeskDesk, but the moment your app needs a public form, a wiki, an admin-only listing, or a markdown editor inside a form, they save you from another round of hand-rolled Vue.]]></description>
            <category>App development</category>
            <category>Manifest</category>
            <category>OpenRegister</category>
            <category>nextcloud-vue</category>
            <category>Tutorial series</category>
            <category>Advanced</category>
        </item>
        <item>
            <title><![CDATA[OpenWoo community — two years of monthly meetings]]></title>
            <link>https://www.conduction.nl/academy/openwoo-community-meetings/</link>
            <guid>https://www.conduction.nl/academy/openwoo-community-meetings/</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The OpenWoo community meets every second Tuesday of the month. Vendors (Conduction, Xxllnc, OpenGemeenten, SHIFT2, Acato, Notubiz, iO), municipalities in production or acceptance, and KOOP share progress, blockers, and the next slice of the roadmap. Below are all recorded sessions since late 2023.]]></description>
            <category>OpenWoo</category>
            <category>Woo</category>
            <category>Community</category>
            <category>Video</category>
            <category>Common Ground</category>
        </item>
        <item>
            <title><![CDATA[Nextcloud is not a suite, it is a platform]]></title>
            <link>https://www.conduction.nl/academy/the-platform-moment/</link>
            <guid>https://www.conduction.nl/academy/the-platform-moment/</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Nextcloud is standing in front of an open window. Most people, including many inside the ecosystem itself, have not yet noticed it is open. What started as a safe alternative for file storage has quietly grown into something fundamentally different. The technical reality is already that of a platform. The name is the only thing still trailing behind. And in technology, as history teaches us, naming is not cosmetic. Naming is load-bearing. Windows close.]]></description>
            <category>Nextcloud</category>
            <category>Platform</category>
            <category>Sovereignty</category>
            <category>AI</category>
            <category>OpenBuilt</category>
        </item>
        <item>
            <title><![CDATA[Build a Nextcloud app on the Conduction stack — Part 4: Knowledge + ship]]></title>
            <link>https://www.conduction.nl/academy/deskdesk-tutorial-4-knowledge-and-ship/</link>
            <guid>https://www.conduction.nl/academy/deskdesk-tutorial-4-knowledge-and-ship/</guid>
            <pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Part 4 of the six-part DeskDesk tutorial. Part 3 made bookings appear in NC Calendar with one schema annotation. Part 4 brings external knowledge — zone-specific etiquette, equipment notes, troubleshooting — from xWiki into the desk detail sidebar via a knowledge_article OpenRegister schema. Then we package the app and ship it.]]></description>
            <category>App development</category>
            <category>OpenConnector</category>
            <category>xWiki</category>
            <category>Knowledge management</category>
            <category>Release</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Claude Skills tutorial series — Part 1: What are Claude Skills?]]></title>
            <link>https://www.conduction.nl/academy/claude-skills-tutorial-1-wat-zijn-claude-skills/</link>
            <guid>https://www.conduction.nl/academy/claude-skills-tutorial-1-wat-zijn-claude-skills/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Claude Skills are the mechanism for extending Claude Code with reusable, specialised behaviours. Think of Conduction's own /review-pr, /opsx-new, or the whole hydra-gate- family: each one is a skill. This first part explains in ten minutes what a skill is, how it gets activated, and when you should not write one. It's part 1 of a four-part track; by the end you'll be ready to write your own in part 2 — and in part 3 we introduce the 7-level maturity framework* that takes a skill from "feels good" to "measured good" (part 4 continues with L6 and L7).]]></description>
            <category>Claude</category>
            <category>Claude Code</category>
            <category>Skills</category>
            <category>AI</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Claude Skills tutorial series — Part 3: Skill evals — measuring whether your skill actually works]]></title>
            <link>https://www.conduction.nl/academy/claude-skills-tutorial-3-skill-evals/</link>
            <guid>https://www.conduction.nl/academy/claude-skills-tutorial-3-skill-evals/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[You now have a working skill — but does it actually work well? And does it keep working when Claude itself gets upgraded or when you tweak the skill? This third, optional part shows how to evaluate a skill systematically: test scenarios, trigger tests, a baseline measurement, and the eval runner that /skill-creator sets up for you. This is the step from Maturity Level 4 ("feels right") to Level 5 ("measurably right").]]></description>
            <category>Claude</category>
            <category>Claude Code</category>
            <category>Skills</category>
            <category>AI</category>
            <category>Evals</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Build a Nextcloud app on the Conduction stack — Part 3: Schema-driven integrations]]></title>
            <link>https://www.conduction.nl/academy/deskdesk-tutorial-3-calendar/</link>
            <guid>https://www.conduction.nl/academy/deskdesk-tutorial-3-calendar/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This is Part 3 of the six-part DeskDesk tutorial. Part 2 wired the desk and booking schemas. Part 3 makes those bookings appear in every user's Nextcloud Calendar — without writing a controller, an event listener, or any per-app calendar glue.]]></description>
            <category>App development</category>
            <category>OpenRegister</category>
            <category>NC Calendar</category>
            <category>CalDAV</category>
            <category>Schema integrations</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Claude Skills tutorial series — Part 2: Writing your first skill]]></title>
            <link>https://www.conduction.nl/academy/claude-skills-tutorial-2-je-eerste-skill/</link>
            <guid>https://www.conduction.nl/academy/claude-skills-tutorial-2-je-eerste-skill/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In part 1 you saw what a skill is. In this part you'll write one yourself: a working git-status-summary skill that produces a readable summary of the current working tree. At the end it sits in your ~/.claude/skills/ folder, you can invoke it via /git-status-summary, and you'll know how to share it with your team.]]></description>
            <category>Claude</category>
            <category>Claude Code</category>
            <category>Skills</category>
            <category>AI</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Claude Skills tutorial series — Part 4: From measured to learning and orchestrating (L6 → L7)]]></title>
            <link>https://www.conduction.nl/academy/claude-skills-tutorial-4-l6-l7-mature-skills/</link>
            <guid>https://www.conduction.nl/academy/claude-skills-tutorial-4-l6-l7-mature-skills/</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In part 3 you took a skill from "feels right" to "measurably right" — Maturity Level 5. For most skills that's enough. But for a handful of skills you use daily, or that steer other skills, you want to go further: a skill that learns from its own executions (L6), and a skill that steers other agents inside a larger workflow (L7). This fourth part shows how you get there — and how the Hydra dashboard lets you monitor your whole skill library for maturity at once.]]></description>
            <category>Claude</category>
            <category>Claude Code</category>
            <category>Skills</category>
            <category>AI</category>
            <category>Maturity</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Build a Nextcloud app on the Conduction stack — Part 2: Schemas + manifest]]></title>
            <link>https://www.conduction.nl/academy/deskdesk-tutorial-2-schemas-manifest/</link>
            <guid>https://www.conduction.nl/academy/deskdesk-tutorial-2-schemas-manifest/</guid>
            <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This is Part 2 of the six-part DeskDesk tutorial. Part 1 left you with an empty app shell — a chassis, no data. Part 2 fills the chassis: three schemas, a manifest, and the same five Cn* pages drive every list, every detail view, every dashboard with the schema as the single source of truth.]]></description>
            <category>App development</category>
            <category>OpenRegister</category>
            <category>Schemas</category>
            <category>Manifest</category>
            <category>nextcloud-vue</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 2: The three pipelines]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-2-drie-pipelines/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-2-drie-pipelines/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In part 1 you saw that Hydra has four personas. In this part we look at the pipeline: how those personas work on one issue one after another, which labels mark the transitions, and when the pipeline diverts to needs-input. By the end you'll know Hydra's label state machine inside out and you'll be able to steer an issue back to the right phase if it gets stuck somewhere.]]></description>
            <category>Hydra</category>
            <category>Pipelines</category>
            <category>Personas</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 3: Quality gates]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-3-quality-gates/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-3-quality-gates/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In part 2 you saw that the three personas are backed up by mechanical quality gates — checks that pass or fail deterministically, without AI in the loop. This part explains which gates we have, why they are mechanical, and how to handle the exception: the false positive.]]></description>
            <category>Hydra</category>
            <category>Gates</category>
            <category>Quality</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 1: What is Hydra?]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-1-wat-is-hydra/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-1-wat-is-hydra/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hydra runs on OpenSpec changes. If you're not yet familiar with terms like spec, change, requirement and scenario, take the OpenSpec tutorial series first (parts 1 and 2, roughly 30 minutes together). It will save you a lot of backtracking in the rest of these modules.]]></description>
            <category>Hydra</category>
            <category>AI</category>
            <category>CI/CD</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 4: Skills]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-4-skills/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-4-skills/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This part dives straight into the Hydra-specific skill families. If you'd rather first learn what a Claude Skill even is, how the frontmatter works, and when you'd write one yourself, take the public Claude Skills tutorial series (three short modules, ~40 minutes). From here on we assume you know the basics.]]></description>
            <category>Hydra</category>
            <category>Skills</category>
            <category>OPSX</category>
            <category>Testing</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 5: Starting a Hydra run on a real app]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-5-een-hydra-run-starten/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-5-een-hydra-run-starten/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The first four parts were about concept, pipelines, gates and skills. Time to actually run. In this part you start a full Hydra run on a target app, paying attention to the practical pitfalls: tokens, images, and — if you work with multiple devs against the same repos — the HYDRALABELPREFIX trick.]]></description>
            <category>Hydra</category>
            <category>Operations</category>
            <category>Setup</category>
            <category>Labels</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[Hydra tutorial series — Part 6: Troubleshooting & escalation]]></title>
            <link>https://www.conduction.nl/academy/hydra-tutorial-6-troubleshooting-escalatie/</link>
            <guid>https://www.conduction.nl/academy/hydra-tutorial-6-troubleshooting-escalatie/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[In part 5 the pipeline was running. Now the final part: what do you do when it doesn't go green? This part gives you the decision tree — ordered from cheapest intervention to most expensive — and the patterns that get needs-input issues moving again.]]></description>
            <category>Hydra</category>
            <category>Troubleshooting</category>
            <category>Recovery</category>
            <category>Tutorial series</category>
        </item>
        <item>
            <title><![CDATA[OpenSpec tutorial series — Part 1: What is OpenSpec?]]></title>
            <link>https://www.conduction.nl/academy/openspec-tutorial-1-wat-is-openspec/</link>
            <guid>https://www.conduction.nl/academy/openspec-tutorial-1-wat-is-openspec/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[OpenSpec is a lightweight framework for spec-driven development: first write down what a feature should do, only then write the code. In this twelve-minute module you'll learn what OpenSpec is, which concepts it builds on, and why we use it underneath almost every Conduction project. By the end you're ready for Part 2, where you'll actually write your first change.]]></description>
            <category>OpenSpec</category>
            <category>Spec-first</category>
            <category>Tutorial series</category>
            <category>Documentation</category>
        </item>
        <item>
            <title><![CDATA[OpenSpec tutorial series — Part 2: Your first OpenSpec change]]></title>
            <link>https://www.conduction.nl/academy/openspec-tutorial-2-eerste-change/</link>
            <guid>https://www.conduction.nl/academy/openspec-tutorial-2-eerste-change/</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Time to see OpenSpec in action. In this part you'll create your first real change inside a Conduction project — from empty folder, through a spec-delta with a requirement and scenario, to a validated proposal ready for implementation. We do that with the Claude Code skills /opsx-new and /opsx-ff.]]></description>
            <category>OpenSpec</category>
            <category>Spec-first</category>
            <category>Tutorial series</category>
            <category>Workflow</category>
            <category>Claude Code</category>
        </item>
    </channel>
</rss>