|
| 1 | +# ADR-0013: Adopt AI-Assisted Development Workflow |
| 2 | + |
| 3 | +Date: 2026-06-10 |
| 4 | + |
| 5 | +## Status |
| 6 | + |
| 7 | +Accepted |
| 8 | + |
| 9 | +## Context |
| 10 | + |
| 11 | +Software development has historically relied on three successive layers |
| 12 | +of knowledge: |
| 13 | + |
| 14 | +1. **Official documentation** — authoritative but static; describes the |
| 15 | + intended API but not how real projects apply it |
| 16 | +2. **Community collaboration** — Stack Overflow, GitHub Discussions, blog |
| 17 | + posts; describes how practitioners actually solve problems, but requires |
| 18 | + the developer to synthesize and apply that knowledge themselves |
| 19 | +3. **AI synthesis** — models trained on both layers above, capable of |
| 20 | + applying idiomatic, stack-specific knowledge directly to a given |
| 21 | + codebase |
| 22 | + |
| 23 | +Agentic AI tools represent a qualitative shift: instead of consulting |
| 24 | +knowledge and applying it manually, the developer delegates implementation |
| 25 | +to an agent that has absorbed the collective idioms of a stack — "the |
| 26 | +Microsoft way", "the Spring Boot way" — and can apply them consistently. |
| 27 | + |
| 28 | +For a cross-language REST API comparison project, this matters |
| 29 | +particularly: each implementation should reflect how an experienced |
| 30 | +practitioner in that stack would structure the same problem, not a |
| 31 | +generic approach that happens to compile. |
| 32 | + |
| 33 | +Prior to Claude Code, AI assistance was used ad-hoc — pasting code into |
| 34 | +web interfaces (ChatGPT, DeepSeek) or via IDE-integrated assistants |
| 35 | +(GitHub Copilot). Both approaches lack persistent codebase context and |
| 36 | +the ability to act autonomously across a project. |
| 37 | + |
| 38 | +## Decision |
| 39 | + |
| 40 | +We adopt Claude Code as the primary development workflow tool for this |
| 41 | +project. |
| 42 | + |
| 43 | +A `CLAUDE.md` file at the repository root serves as the workflow |
| 44 | +specification: it documents architecture, coding conventions, invariants, |
| 45 | +and explicit boundaries for autonomous operation — what the agent may do |
| 46 | +freely, what requires human approval, and what must never be changed. |
| 47 | + |
| 48 | +CodeRabbit provides an additional automated code review layer |
| 49 | +independent of the primary workflow. |
| 50 | + |
| 51 | +## Consequences |
| 52 | + |
| 53 | +### Positive |
| 54 | + |
| 55 | +- Stack-specific idioms are enforced by the agent's collective knowledge |
| 56 | + rather than individual developer discipline |
| 57 | +- `CLAUDE.md` is living architectural documentation: it must stay |
| 58 | + accurate for the workflow to function, creating a natural incentive to |
| 59 | + keep it current |
| 60 | +- Explicit autonomy boundaries make human oversight intentional rather |
| 61 | + than incidental |
| 62 | + |
| 63 | +### Negative |
| 64 | + |
| 65 | +- Token economics: long-running work may exceed context limits, requiring |
| 66 | + active session management and continuation prompts to resume work |
| 67 | + across sessions |
| 68 | +- The global `~/.claude/CLAUDE.md` and per-repo `CLAUDE.md` must stay |
| 69 | + aligned; drift between them produces inconsistent agent behavior |
| 70 | + |
| 71 | +### Neutral |
| 72 | + |
| 73 | +- Development workflow moves to the terminal/CLI rather than an IDE; |
| 74 | + this has no impact on the codebase itself |
| 75 | +- `CLAUDE.md` is specific to Claude Code; a different tool would require |
| 76 | + a different workflow specification format |
0 commit comments