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 the model doesn't have it next session.
This guide shows the actual workflow. Not summaries. Not feature lists. The conversation between you and the model, from first init to the moment governance starts compounding.
1. First init — describe the project, get governance
You have a Go backend for a file-upload 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 the model needs to follow your standards is installed where it actually reads it — not in a wiki, not in a doc you'll forget to update.
2. The moment the model follows the rules without being told
Next morning. New session. You don't mention your architecture. You don't remind the model about error handling. You just describe the work.
The model separated the layers correctly — domain, application, infrastructure. It kept the HTTP handler thin. It used typed errors with context wrapping. It knew about the provider'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 the model 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.
The model 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 scan-result delivery with retry logic — not just receiving scan events, but sending them to your own consumers. Before writing code, you capture the requirements.
Notice question 5. The model 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:sdlc:prd
4. Spec interview — the model 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. The model isn't guessing — it read the project before asking.
Command reference: /edikt:sdlc: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:sdlc:plan SPEC-003
6. The drift check — does the implementation match what was decided?
Three days later. All six phases are complete. The scan-result 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:sdlc:drift SPEC-003
7. Decision capture — governance that compiles itself
During implementation, you made a choice: transactional outbox over event-driven messaging. The Stop hook noticed.
The decision you made today is now enforcement tomorrow. Not a doc someone might read. A directive the model loads automatically, every session, before writing code.
Command references: /edikt:adr, /edikt:gov:compile
8. Next session — the model already knows everything
Thursday morning. New session. You haven't opened this project since Tuesday.
The model 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 the model remembers them.
Command reference: /edikt:status