{"article":{"slug":"shipping-with-ai-scoold-has-a-new-admin-dashboard","title":"Shipping with AI: Scoold has a new admin dashboard","subtitle":null,"summary":"Alexander Bogdanovski walks through an AI-assisted development process for shipping a new admin dashboard in Scoold, the open-source Q&A platform: prompts, iteration, verification, and a detailed breakdown of what the AI wrote versus what he changed.","content_type":"blog_post","language":"en","canonical_url":"https://erudika.com/blog/shipping-with-ai-scoold-has-a-new-admin-dashboard/","author":{"name":"Alexander Bogdanovski","url":"https://erudika.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Erudika","url":"https://erudika.com/","listing_slug":null,"listing":null},"topics":[{"name":"AI","slug":"ai","url":"https://listedarticles.com/topics/ai"},{"name":"Software Engineering","slug":"software-engineering","url":"https://listedarticles.com/topics/software-engineering"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Developer Tools","slug":"developer-tools","url":"https://listedarticles.com/topics/developer-tools"},{"name":"Productivity","slug":"productivity","url":"https://listedarticles.com/topics/productivity"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1527,"reading_minutes":7,"published_at":"2026-10-02T00:00:00.000Z","added_at":"2026-10-13T08:13:50.276Z","updated_at":"2026-10-13T08:13:50.276Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/shipping-with-ai-scoold-has-a-new-admin-dashboard","markdown_url":"https://listedarticles.com/articles/shipping-with-ai-scoold-has-a-new-admin-dashboard.md","example":false,"citation":"Alexander Bogdanovski, Erudika. \"Shipping with AI: Scoold has a new admin dashboard.\" 2 Oct 2026. https://erudika.com/blog/shipping-with-ai-scoold-has-a-new-admin-dashboard/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://erudika.com/blog/shipping-with-ai-scoold-has-a-new-admin-dashboard/"},"body_markdown":"# The best free Q&A platform just got better - Scoold has a new admin dashboard!\n\n[ai](https://erudika.com/blog/tags/ai/)[shipping-with-ai](https://erudika.com/blog/tags/shipping-with-ai/)[scoold](https://erudika.com/blog/tags/scoold/)\n\nRunning a Q&A platform for your team is only half the job. Once people start using it, administrators need to understand what’s happening: Which questions are getting attention? Who are the most active users? Is engagement increasing? Which questions have been sitting unanswered for too long?\n\nThat’s why we’re introducing a brand-new **admin dashboard for Scoold and Scoold Pro**.\n\n![Blog media](https://erudika.com/_astro/blogpost_media23.HcqdJrg-_Z1UOBNa.webp)\n\nThe dashboard gives administrators an at-a-glance view of what’s happening across their Scoold installation, with statistics, activity metrics, charts, trending content, user engagement and more.\n\nAnd there’s another interesting story behind this release: **we built most of it with an AI coding agent.**\n\n## A dashboard for your Q&A community\n\nThe new dashboard is available from the `/admin` section of Scoold and is designed to give administrators a quick overview of the health and activity of their Q&A community.\n\nAmong other things, it provides information about:\n\n- **Top users** and user engagement\n- **Trending content**\n- **Questions and answers**\n- **Views and votes**\n- **Reputation points**\n- **Engagement over time**\n- **Basic community statistics**\n- **Recent activity**\n\nOne of the most useful views for an administrator is identifying questions that have remained unanswered for a long time. These are often the questions that need attention from moderators or subject-matter experts.\n\nThe dashboard also makes it easier to spot which parts of your knowledge base are getting the most attention and which users are contributing the most.\n\n![Blog media](https://erudika.com/_astro/dashboard1.DuSD8cAM_Z1jGdzd.webp)\n\n## Building the dashboard with OpenCode\n\nFor this feature, I used **OpenCode**, an open-source AI coding agent, to do most of the implementation work.\n\n![Blog media](https://erudika.com/_astro/dashboard2.B54qPB3U_6OSQh.webp)\n\nI started by preparing a `PRD.md` describing the feature and providing screenshots showing the kind of dashboard UI we wanted. I then gave OpenCode a relatively simple initial instruction:\n\n> Take a look at the PRD and devise a plan for implementing the new feature. We need a new dashboard at `/admin`.\n\nThe agent had access to the existing Scoold codebase and the design references.\n\nFrom there, the work became an iterative collaboration between me and the coding agent.\nI still inspected the existing code myself and made the important architectural decisions. In particular, I had to explain some of the details of Scoold’s backend architecture and how its underlying Para data model works. The agent handled most of the implementation.\n\n## Four days, 56 prompts and 4.5 hours of AI work\n\nI spent four calendar days building this, and a total of **~150 million** tokens, which is astounding to me.\nThe numbers are interesting:\n\n| Metric | Result |\n| --- | --- |\n| Calendar time | 4 days |\n| Active model time | ~4.5 hours |\n| Prompts | 56 |\n| Model steps | 781 |\n| Tool calls | 807 |\n| Files changed | 63 |\n| Lines added | 2,432 |\n| Lines removed | 228 |\n| New files | 13 |\n| Feature commits | 6 |\n| Total token processing | 151.6 million |\n| Total AI cost | **$16.81** |\n\nIt used the shell extensively, inspected the existing Java code, searched through the project, edited files, ran the Maven build and tests, started and stopped the application and used Playwright to interact with the running application in a browser.\n\nIn total, it made **153 browser calls** during the session.\n\nThat last part was particularly useful. The agent could actually look at the resulting dashboard rather than relying entirely on whether the code compiled.\n\n## The models\n\nI switched between a couple of models depending on what I needed:\n\n- GLM-5.2 (the thinker)\n- GPT-5.6 Luna (the doer)\n\nI used GLM for the planning part. GPT Luna was used as the implementing agent and handled most of and implementation tasks.\n\nThe total cost of the entire session was only ~**$17**. That’s a surprisingly small amount considering the amount of code that was produced.\n\nThe session processed about **151.6 million tokens**, but only 9.1 million were new input tokens. About 139.2 million tokens were served from the provider’s prompt cache, giving the session a **93.8% cache hit rate**.\n\nFor long-running coding-agent sessions, this makes a significant difference to the economics. The agent repeatedly needs a large amount of context about the project, but most of that context doesn’t need to be processed from scratch every time.\n\n## One-shot vs Micro-Waterfall\n\nOne of the key takeaways from the project was that I didn’t *“one-shot”* the feature with instruction such as:\n\n> “Build the entire admin dashboard.”\n\nInstead, I broke the work into smaller, verifiable pieces. I like to call it *“micro waterfall”*.\n\n![Blog media](https://erudika.com/_astro/waterfall.Dg7Piges_Z14K7s3.webp)\n\nI’d ask it to implement a particular dashboard panel or part of the functionality, let it make the changes, run the application and inspect the result, and then move on to the next piece.\nThat approach worked considerably better than trying to delegate the entire feature in one shot.\nThe agent stayed focused because each task had a relatively clear boundary and, importantly, a clear way to verify whether the result was correct.\n\n## AI coding agents still need supervision\n\nEarly in the session, I had to explain how to start and stop the development services and provide additional information about Scoold’s backend architecture.\n\nThere were also several cases where the agent reported that something was working, but a manual check showed that it wasn’t quite right.\nFor example, at one point a leaderboard displayed the wrong number of rows. In another case, a resource column displayed an object type instead of the actual object ID.\n\n## The agent caught a hard-to-find performance issue\n\nOne of the more interesting parts of the development was the way we handled traffic statistics.\nAn early implementation of the dashboard would read and iterate over hundreds of objects every time the dashboard loaded.\nThat worked, but it obviously wasn’t a good design for a production application.\n\nDuring a code review, the agent identified the problem and suggested a different approach.\nInstead of repeatedly scanning hundreds of individual objects, Scoold now aggregates traffic information in memory and periodically flushes the aggregated data to storage.\nThe dashboard can then read a small amount of aggregated data rather than repeatedly processing hundreds of objects.\n\nThis is a good example of where an AI coding agent can be useful beyond simply translating instructions into code. Once it understands enough of the surrounding architecture, it can also identify implementation problems and suggest improvements.\n\n## Building the activity log\n\nThe dashboard also introduced a new audit log.\n\n![Blog media](https://erudika.com/_astro/dashboard3._nKSdBsx_Z1w38xV.webp)\n\nThis provides administrators with an audit-style view of activity taking place in their Scoold installation.\nFor this part of the implementation, I provided the agent with a written specification describing the events that needed to be tracked.\nThat turned out to be a very effective way of working.\n\nRather than asking the agent to decide what should be logged, I gave it an explicit specification and asked it to map those requirements onto the existing controller code.\nThe result was roughly **50 new event types and around 30 new call sites** across the application.\nThis change also greatly enhanced the webhooks API, where developers can now register to listen for much more events in Scoold.\n\n## Testing the result\n\nThe feature was validated through a combination of automated and manual testing.\nThe project includes unit tests for the new dashboard service, while the agent also repeatedly built and ran the application during development.\nBut browser testing was equally important.\n\nThe agent used Playwright to interact with the actual running application, while I manually inspected the dashboard and its data.\nThis helped catch problems that wouldn’t necessarily show up in a unit test or compiler error.\nThe final feature touches a significant portion of the application, including the admin controller, configuration, request interception, templates, JavaScript, styling, localization and the new dashboard service.\n\nThe implementation ultimately landed across [63 changed files and was split into six feature commits](https://github.com/Erudika/scoold/commit/84249470a2ccc2e15e8cc2d04ad1ae4f9cc49487).\n\n## What we learned\n\nThe biggest lesson wasn’t that AI can write a lot of code.\nWe already know that.\nThe more interesting lesson is that **the quality of the result depends heavily on the quality of the feedback loop**.\n\nThe most effective workflow for this project was:\n\n1. Give the agent a clear specification.\n2. Let it inspect the existing codebase.\n3. Make the architectural decisions that require knowledge of the product.\n4. Break the implementation into small pieces.\n5. Let the agent implement each piece.\n6. Build and run the application.\n7. Inspect the result in a real browser.\n8. Correct problems immediately.\n9. Move on to the next piece.\n\nThe AI agent handled a lot of the mechanical work. I remained responsible for the product decisions, architecture and verification.\nGoing forward, this approach will increasingly become how we develop Scoold.\n\n## What’s next?\n\nThe new dashboard gives Scoold administrators considerably more visibility into their communities, but it’s also a foundation we can build on.\nAs we collect feedback from users, we’ll continue improving the dashboard with additional metrics and administration tools.\n\nScoold is designed to help companies build and maintain their own internal knowledge bases without handing their organization’s knowledge over to a third-party platform.\nNow administrators have better tools for understanding how that knowledge base is being used.\n\n*If you liked this post, you can try out Scoold Pro today at [cloud.scoold.com](https://cloud.scoold.com).*\n\nAbout the author\n\n![Alexander Bogdanovski](https://erudika.com/_astro/ab.D_BEgQ6X_Z8oAm5.webp)\n\nAlexander Bogdanovski  \nFounder & Indie Hacker\n\n17+ years building backend infrastructure. Creator of Para and Scoold.\n\n[in](https://bg.linkedin.com/in/albogdano)[gh](https://github.com/albogdano)\n","body_html":"<h1 id=\"the-best-free-q-a-platform-just-got-better-scoold-has-a-new-admi\">The best free Q&amp;A platform just got better - Scoold has a new admin dashboard!</h1>\n<p><a href=\"https://erudika.com/blog/tags/ai/\" rel=\"nofollow ugc noopener\">ai</a><a href=\"https://erudika.com/blog/tags/shipping-with-ai/\" rel=\"nofollow ugc noopener\">shipping-with-ai</a><a href=\"https://erudika.com/blog/tags/scoold/\" rel=\"nofollow ugc noopener\">scoold</a></p>\n<p>Running a Q&amp;A platform for your team is only half the job. Once people start using it, administrators need to understand what’s happening: Which questions are getting attention? Who are the most active users? Is engagement increasing? Which questions have been sitting unanswered for too long?</p>\n<p>That’s why we’re introducing a brand-new <strong>admin dashboard for Scoold and Scoold Pro</strong>.</p>\n<figure><img src=\"https://erudika.com/_astro/blogpost_media23.HcqdJrg-_Z1UOBNa.webp\" alt=\"Blog media\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>The dashboard gives administrators an at-a-glance view of what’s happening across their Scoold installation, with statistics, activity metrics, charts, trending content, user engagement and more.</p>\n<p>And there’s another interesting story behind this release: <strong>we built most of it with an AI coding agent.</strong></p>\n<h2 id=\"a-dashboard-for-your-q-a-community\">A dashboard for your Q&amp;A community</h2>\n<p>The new dashboard is available from the <code>/admin</code> section of Scoold and is designed to give administrators a quick overview of the health and activity of their Q&amp;A community.</p>\n<p>Among other things, it provides information about:</p>\n<ul><li><strong>Top users</strong> and user engagement</li><li><strong>Trending content</strong></li><li><strong>Questions and answers</strong></li><li><strong>Views and votes</strong></li><li><strong>Reputation points</strong></li><li><strong>Engagement over time</strong></li><li><strong>Basic community statistics</strong></li><li><strong>Recent activity</strong></li></ul>\n<p>One of the most useful views for an administrator is identifying questions that have remained unanswered for a long time. These are often the questions that need attention from moderators or subject-matter experts.</p>\n<p>The dashboard also makes it easier to spot which parts of your knowledge base are getting the most attention and which users are contributing the most.</p>\n<figure><img src=\"https://erudika.com/_astro/dashboard1.DuSD8cAM_Z1jGdzd.webp\" alt=\"Blog media\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<h2 id=\"building-the-dashboard-with-opencode\">Building the dashboard with OpenCode</h2>\n<p>For this feature, I used <strong>OpenCode</strong>, an open-source AI coding agent, to do most of the implementation work.</p>\n<figure><img src=\"https://erudika.com/_astro/dashboard2.B54qPB3U_6OSQh.webp\" alt=\"Blog media\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>I started by preparing a <code>PRD.md</code> describing the feature and providing screenshots showing the kind of dashboard UI we wanted. I then gave OpenCode a relatively simple initial instruction:</p>\n<blockquote><p>Take a look at the PRD and devise a plan for implementing the new feature. We need a new dashboard at <code>/admin</code>.</p></blockquote>\n<p>The agent had access to the existing Scoold codebase and the design references.</p>\n<p>From there, the work became an iterative collaboration between me and the coding agent.\nI still inspected the existing code myself and made the important architectural decisions. In particular, I had to explain some of the details of Scoold’s backend architecture and how its underlying Para data model works. The agent handled most of the implementation.</p>\n<h2 id=\"four-days-56-prompts-and-4-5-hours-of-ai-work\">Four days, 56 prompts and 4.5 hours of AI work</h2>\n<p>I spent four calendar days building this, and a total of <strong>~150 million</strong> tokens, which is astounding to me.\nThe numbers are interesting:</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Metric</th><th>Result</th></tr></thead><tbody><tr><td>Calendar time</td><td>4 days</td></tr><tr><td>Active model time</td><td>~4.5 hours</td></tr><tr><td>Prompts</td><td>56</td></tr><tr><td>Model steps</td><td>781</td></tr><tr><td>Tool calls</td><td>807</td></tr><tr><td>Files changed</td><td>63</td></tr><tr><td>Lines added</td><td>2,432</td></tr><tr><td>Lines removed</td><td>228</td></tr><tr><td>New files</td><td>13</td></tr><tr><td>Feature commits</td><td>6</td></tr><tr><td>Total token processing</td><td>151.6 million</td></tr><tr><td>Total AI cost</td><td><strong>$16.81</strong></td></tr></tbody></table></div>\n<p>It used the shell extensively, inspected the existing Java code, searched through the project, edited files, ran the Maven build and tests, started and stopped the application and used Playwright to interact with the running application in a browser.</p>\n<p>In total, it made <strong>153 browser calls</strong> during the session.</p>\n<p>That last part was particularly useful. The agent could actually look at the resulting dashboard rather than relying entirely on whether the code compiled.</p>\n<h2 id=\"the-models\">The models</h2>\n<p>I switched between a couple of models depending on what I needed:</p>\n<ul><li>GLM-5.2 (the thinker)</li><li>GPT-5.6 Luna (the doer)</li></ul>\n<p>I used GLM for the planning part. GPT Luna was used as the implementing agent and handled most of and implementation tasks.</p>\n<p>The total cost of the entire session was only ~<strong>$17</strong>. That’s a surprisingly small amount considering the amount of code that was produced.</p>\n<p>The session processed about <strong>151.6 million tokens</strong>, but only 9.1 million were new input tokens. About 139.2 million tokens were served from the provider’s prompt cache, giving the session a <strong>93.8% cache hit rate</strong>.</p>\n<p>For long-running coding-agent sessions, this makes a significant difference to the economics. The agent repeatedly needs a large amount of context about the project, but most of that context doesn’t need to be processed from scratch every time.</p>\n<h2 id=\"one-shot-vs-micro-waterfall\">One-shot vs Micro-Waterfall</h2>\n<p>One of the key takeaways from the project was that I didn’t <em>“one-shot”</em> the feature with instruction such as:</p>\n<blockquote><p>“Build the entire admin dashboard.”</p></blockquote>\n<p>Instead, I broke the work into smaller, verifiable pieces. I like to call it <em>“micro waterfall”</em>.</p>\n<figure><img src=\"https://erudika.com/_astro/waterfall.Dg7Piges_Z14K7s3.webp\" alt=\"Blog media\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>I’d ask it to implement a particular dashboard panel or part of the functionality, let it make the changes, run the application and inspect the result, and then move on to the next piece.\nThat approach worked considerably better than trying to delegate the entire feature in one shot.\nThe agent stayed focused because each task had a relatively clear boundary and, importantly, a clear way to verify whether the result was correct.</p>\n<h2 id=\"ai-coding-agents-still-need-supervision\">AI coding agents still need supervision</h2>\n<p>Early in the session, I had to explain how to start and stop the development services and provide additional information about Scoold’s backend architecture.</p>\n<p>There were also several cases where the agent reported that something was working, but a manual check showed that it wasn’t quite right.\nFor example, at one point a leaderboard displayed the wrong number of rows. In another case, a resource column displayed an object type instead of the actual object ID.</p>\n<h2 id=\"the-agent-caught-a-hard-to-find-performance-issue\">The agent caught a hard-to-find performance issue</h2>\n<p>One of the more interesting parts of the development was the way we handled traffic statistics.\nAn early implementation of the dashboard would read and iterate over hundreds of objects every time the dashboard loaded.\nThat worked, but it obviously wasn’t a good design for a production application.</p>\n<p>During a code review, the agent identified the problem and suggested a different approach.\nInstead of repeatedly scanning hundreds of individual objects, Scoold now aggregates traffic information in memory and periodically flushes the aggregated data to storage.\nThe dashboard can then read a small amount of aggregated data rather than repeatedly processing hundreds of objects.</p>\n<p>This is a good example of where an AI coding agent can be useful beyond simply translating instructions into code. Once it understands enough of the surrounding architecture, it can also identify implementation problems and suggest improvements.</p>\n<h2 id=\"building-the-activity-log\">Building the activity log</h2>\n<p>The dashboard also introduced a new audit log.</p>\n<figure><img src=\"https://erudika.com/_astro/dashboard3._nKSdBsx_Z1w38xV.webp\" alt=\"Blog media\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>This provides administrators with an audit-style view of activity taking place in their Scoold installation.\nFor this part of the implementation, I provided the agent with a written specification describing the events that needed to be tracked.\nThat turned out to be a very effective way of working.</p>\n<p>Rather than asking the agent to decide what should be logged, I gave it an explicit specification and asked it to map those requirements onto the existing controller code.\nThe result was roughly <strong>50 new event types and around 30 new call sites</strong> across the application.\nThis change also greatly enhanced the webhooks API, where developers can now register to listen for much more events in Scoold.</p>\n<h2 id=\"testing-the-result\">Testing the result</h2>\n<p>The feature was validated through a combination of automated and manual testing.\nThe project includes unit tests for the new dashboard service, while the agent also repeatedly built and ran the application during development.\nBut browser testing was equally important.</p>\n<p>The agent used Playwright to interact with the actual running application, while I manually inspected the dashboard and its data.\nThis helped catch problems that wouldn’t necessarily show up in a unit test or compiler error.\nThe final feature touches a significant portion of the application, including the admin controller, configuration, request interception, templates, JavaScript, styling, localization and the new dashboard service.</p>\n<p>The implementation ultimately landed across <a href=\"https://github.com/Erudika/scoold/commit/84249470a2ccc2e15e8cc2d04ad1ae4f9cc49487\" rel=\"nofollow ugc noopener\">63 changed files and was split into six feature commits</a>.</p>\n<h2 id=\"what-we-learned\">What we learned</h2>\n<p>The biggest lesson wasn’t that AI can write a lot of code.\nWe already know that.\nThe more interesting lesson is that <strong>the quality of the result depends heavily on the quality of the feedback loop</strong>.</p>\n<p>The most effective workflow for this project was:</p>\n<ol><li>Give the agent a clear specification.</li><li>Let it inspect the existing codebase.</li><li>Make the architectural decisions that require knowledge of the product.</li><li>Break the implementation into small pieces.</li><li>Let the agent implement each piece.</li><li>Build and run the application.</li><li>Inspect the result in a real browser.</li><li>Correct problems immediately.</li><li>Move on to the next piece.</li></ol>\n<p>The AI agent handled a lot of the mechanical work. I remained responsible for the product decisions, architecture and verification.\nGoing forward, this approach will increasingly become how we develop Scoold.</p>\n<h2 id=\"what-s-next\">What’s next?</h2>\n<p>The new dashboard gives Scoold administrators considerably more visibility into their communities, but it’s also a foundation we can build on.\nAs we collect feedback from users, we’ll continue improving the dashboard with additional metrics and administration tools.</p>\n<p>Scoold is designed to help companies build and maintain their own internal knowledge bases without handing their organization’s knowledge over to a third-party platform.\nNow administrators have better tools for understanding how that knowledge base is being used.</p>\n<p><em>If you liked this post, you can try out Scoold Pro today at <a href=\"https://cloud.scoold.com\" rel=\"nofollow ugc noopener\">cloud.scoold.com</a>.</em></p>\n<p>About the author</p>\n<figure><img src=\"https://erudika.com/_astro/ab.D_BEgQ6X_Z8oAm5.webp\" alt=\"Alexander Bogdanovski\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>Alexander Bogdanovski<br />\nFounder &amp; Indie Hacker</p>\n<p>17+ years building backend infrastructure. Creator of Para and Scoold.</p>\n<p><a href=\"https://bg.linkedin.com/in/albogdano\" rel=\"nofollow ugc noopener\">in</a><a href=\"https://github.com/albogdano\" rel=\"nofollow ugc noopener\">gh</a></p>","headings":[{"level":1,"text":"The best free Q&A platform just got better - Scoold has a new admin dashboard!","id":"the-best-free-q-a-platform-just-got-better-scoold-has-a-new-admi"},{"level":2,"text":"A dashboard for your Q&A community","id":"a-dashboard-for-your-q-a-community"},{"level":2,"text":"Building the dashboard with OpenCode","id":"building-the-dashboard-with-opencode"},{"level":2,"text":"Four days, 56 prompts and 4.5 hours of AI work","id":"four-days-56-prompts-and-4-5-hours-of-ai-work"},{"level":2,"text":"The models","id":"the-models"},{"level":2,"text":"One-shot vs Micro-Waterfall","id":"one-shot-vs-micro-waterfall"},{"level":2,"text":"AI coding agents still need supervision","id":"ai-coding-agents-still-need-supervision"},{"level":2,"text":"The agent caught a hard-to-find performance issue","id":"the-agent-caught-a-hard-to-find-performance-issue"},{"level":2,"text":"Building the activity log","id":"building-the-activity-log"},{"level":2,"text":"Testing the result","id":"testing-the-result"},{"level":2,"text":"What we learned","id":"what-we-learned"},{"level":2,"text":"What’s next?","id":"what-s-next"}]}}