shared-service-reuselisted
Install: claude install-skill konradcinkusz/architecture-standards
# Shared services: one codebase, N independent instances
**Read [`references/SHARED-SERVICE-REUSE.md`](references/SHARED-SERVICE-REUSE.md) before applying any of this.**
That file is the standard; everything below it is a summary to help you decide
whether this skill applies and to check your work afterwards.
Reference-architecture principles: P2, P3, P7.
## What this standard covers
- One codebase, N independent instances
- An artifact dependency, never a source dependency
- Publishing must not depend on deploying
- Each consumer names its own instance
- Database per instance, reconciled with P3
- What this does not excuse
## Failure modes
| Symptom | Cause |
|---|---|
| Two consumers' users can authenticate against each other's system | A shared trust root: the same signing key was reused across instances, so the tokens are mutually valid. Independent instances means independent key material (§1) |
| A consumer is running software nobody can identify | The image reference is `:latest`. Two consumers that deployed a week apart are on different builds while their config claims otherwise (§2) |
| The shared service cannot ship a release | The publish job was gated on the service's own deployment secrets, so a maintainer without a hosted instance cannot publish for consumers who need one (§3) |
| An upgrade to one consumer takes another consumer down | The two are not independent instances at all — somewhere a runtime edge was introduced, usually a "temporary" pointer at