{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2025-07-24T17:41:45.086Z", "attributedTo":"https://k.matthias.org/actors/relistan", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://k.matthias.org/actors/relistan/followers"], "content":"

I got two AI agents, Claude and Gemini, to help generate a doc for new developers on how to work with one of our services. In the end, I am quite pleased with what it did.

Example:
# Developer's Guide to the User-Profile Service

Welcome! This document is the comprehensive guide for developers working on the
User-Profile service. It outlines our architecture, established patterns, and
development workflow. Adhering to these conventions is key to maintaining a
clean, consistent, and scalable codebase.

## Table of Contents

1.  [**Getting Started: Your First 5 Minutes**](#getting-started-your-first-5-minutes)
2.  [**Core Architectural Principles**](#core-architectural-principles)
3.  [**Codebase Tour**](#codebase-tour)
4.  [**Quick Decision Guides**](#quick-decision-guides)
5.  [**The Golden Path: Adding a New Feature**](#the-golden-path-adding-a-new-feature)
6.  [**Deep Dive: Key Patterns & Conventions**](#deep-dive-key-patterns--conventions)
    - [The Data Layer (`stores/`)](#the-data-layer-stores)
    - [Event Handling (`event_consumer/`)](#event-handling-event_consumer)
    - [Command Handling (`command_consumer/`)](#command-handling-command_consumer)
    - [The API Layer (`webapi/`)](#the-api-layer-webapi)
    - [Error Handling Patterns](#error-handling-patterns)
    - [Testing (`*_test.go`)](#testing-_testgo)
    - [Long-Running Tasks (`temporal/`)](#long-running-tasks-temporal)
    - [Observability Best Practices](#observability-best-practices)
    - [Configuration Management](#configuration-management)
    - [Performance Considerations](#performance-considerations)
    - [Cross-Cutting Concerns](#cross-cutting-concerns)
7.  [**Development Cheatsheet**](#development-cheatsheet)
8.  [**Glossary of Terms**](#glossary-of-terms)

", "mediaType":"text/html", "attachment":[], "tag":[ {"type":"Hashtag","name":"#getting-started-your-first-5-minutes","href":"https://k.matthias.org/tags/getting-started-your-first-5-minutes"}, {"type":"Hashtag","name":"#core-architectural-principles","href":"https://k.matthias.org/tags/core-architectural-principles"}, {"type":"Hashtag","name":"#codebase-tour","href":"https://k.matthias.org/tags/codebase-tour"}, {"type":"Hashtag","name":"#quick-decision-guides","href":"https://k.matthias.org/tags/quick-decision-guides"}, {"type":"Hashtag","name":"#the-golden-path-adding-a-new-feature","href":"https://k.matthias.org/tags/the-golden-path-adding-a-new-feature"}, {"type":"Hashtag","name":"#deep-dive-key-patterns--conventions","href":"https://k.matthias.org/tags/deep-dive-key-patterns--conventions"}, {"type":"Hashtag","name":"#the-data-layer-stores","href":"https://k.matthias.org/tags/the-data-layer-stores"}, {"type":"Hashtag","name":"#event-handling-event_consumer","href":"https://k.matthias.org/tags/event-handling-event_consumer"}, {"type":"Hashtag","name":"#command-handling-command_consumer","href":"https://k.matthias.org/tags/command-handling-command_consumer"}, {"type":"Hashtag","name":"#the-api-layer-webapi","href":"https://k.matthias.org/tags/the-api-layer-webapi"}, {"type":"Hashtag","name":"#error-handling-patterns","href":"https://k.matthias.org/tags/error-handling-patterns"}, {"type":"Hashtag","name":"#testing-_testgo","href":"https://k.matthias.org/tags/testing-_testgo"}, {"type":"Hashtag","name":"#long-running-tasks-temporal","href":"https://k.matthias.org/tags/long-running-tasks-temporal"}, {"type":"Hashtag","name":"#observability-best-practices","href":"https://k.matthias.org/tags/observability-best-practices"}, {"type":"Hashtag","name":"#configuration-management","href":"https://k.matthias.org/tags/configuration-management"}, {"type":"Hashtag","name":"#performance-considerations","href":"https://k.matthias.org/tags/performance-considerations"}, {"type":"Hashtag","name":"#cross-cutting-concerns","href":"https://k.matthias.org/tags/cross-cutting-concerns"}, {"type":"Hashtag","name":"#development-cheatsheet","href":"https://k.matthias.org/tags/development-cheatsheet"}, {"type":"Hashtag","name":"#glossary-of-terms","href":"https://k.matthias.org/tags/glossary-of-terms"} ], "type":"Note", "id":"https://k.matthias.org/objects/1wcZMty1Vak" }