edikt for Solo Engineers
You own the full cycle. Requirements, architecture, implementation, testing, shipping. Every decision is yours. And every decision lives in your head — which means Claude doesn't have it next session.
This guide shows the actual workflow. Not summaries. Not feature lists. The conversation between you and Claude, from first init to the moment governance starts compounding.
1. First init — describe the project, get governance
You have a Go backend for a payment processing service. Chi router, PostgreSQL, hexagonal architecture. You've been running Claude Code on it for two weeks with a hand-maintained CLAUDE.md that's already out of date.
That took 30 seconds. The rules are in .claude/rules/. The agents are in .claude/agents/. The hooks are in .claude/settings.json. Everything Claude needs to follow your standards is installed where Claude actually reads it — not in a wiki, not in a doc you'll forget to update.
2. The moment Claude follows the rules without being told
Next morning. New session. You don't mention your architecture. You don't remind Claude about error handling. You just describe the work.
Stop and read that again.
Claude separated the layers correctly — domain, application, infrastructure. It kept the HTTP handler thin. It used typed errors with context wrapping. It knew about Stripe's raw body requirement. It planned the work from the domain layer outward.
You didn't ask for any of that. The rules in .claude/rules/ told Claude how your project works. The go.md rules told it how you write Go. The architecture.md rules told it about hexagonal layers. The error-handling.md rules told it about typed errors.
This is the moment. Claude read your rules before you asked. No reminding. No re-explaining. The overhead stops here.
3. Writing a PRD through conversation
Two weeks in. You need Stripe webhook delivery with retry logic — not just receiving webhooks, but sending them to your own consumers. Before writing code, you capture the requirements.
Notice question 5. Claude read your codebase. It found the existing port and asked whether to extend it or create something new. It's not generating from a template — it's grounding the requirements in what already exists.
The requirements survive context compaction. They're in docs/product/prds/. Tomorrow's session can reference them without you re-explaining what you're building.
Command reference: /edikt:prd
4. Spec interview — Claude asks codebase-aware questions
Every question references something real in your codebase. The migration tool. The database driver. An existing ADR. The middleware stack. The test setup. Claude isn't guessing — it read the project before asking.
Command reference: /edikt:spec PRD-003
5. Pre-flight review — specialist agents catch what you'd miss
The DBA caught the missing rollback migration. The security agent caught a secret generation issue. The QA agent caught a missing test case. These are the things you'd catch in code review — except they were caught before a single line was written.
Five minutes to catch a migration without a rollback. After implementation, that's an hour of work and a risky production deploy.
Command reference: /edikt:plan SPEC-003
6. The drift check — does the implementation match what was decided?
Three days later. All six phases are complete. The webhook delivery system is built. Before you open a PR, you verify.
One divergence. The retry scheduler uses exponential backoff but forgot the jitter. The spec said jitter. The implementation doesn't have it. File path, line number, clear action.
Zero drift. What was decided is what got built.
Command reference: /edikt:drift SPEC-003
7. Decision capture — governance that compiles itself
During implementation, you made a choice: transactional outbox over event-driven messaging. Claude's Stop hook noticed.
The decision you made today is now enforcement tomorrow. Not a doc someone might read. A directive Claude loads automatically, every session, before writing code.
Command references: /edikt:adr, /edikt:compile
8. Next session — Claude already knows everything
Thursday morning. New session. You haven't opened this project since Tuesday.
Claude referenced ADR-003 (which you captured two days ago), your error handling rules, and your migration invariant. Without being asked. Without being reminded. The governance is working.
This is the compound effect. The first session after /edikt:init is better. The tenth session is substantially better. Each ADR compounds into enforcement. Each spec becomes a drift detection baseline. Each decision you capture makes the next session smarter.
A hand-maintained CLAUDE.md decays the moment you forget to update it. edikt's governance accumulates. You still make every call. edikt makes sure Claude remembers them.
Command reference: /edikt:status