architecturelisted
Install: claude install-skill skillsgateway/skillsgateway
# Architecture
Read these sources rather than reasoning from memory; they are canonical:
- `docs/manual/architecture.md` — full architecture: threat model (T1–T6), vetter-based
vetting, two-repo promotion (quarantine → published), git facade,
observability, roadmap (§14 has the phase plan; §14.2 the vetting vetters).
- `docs/decisions/0001-use-java-for-the-product.md` — why Java.
- `docs/decisions/0002-toolchain-and-product-decisions.md` — Boot 4, Maven+Nisse,
JGit-embedded, JdbcClient+Flyway (no JPA), OIDC-only SSO, app-as-BFF, PATs for
git clients.
- `docs/decisions/0012-native-image-as-the-release-artifact.md` — the release
artifact is a JVM container, not a native image.
- `docs/decisions/0003-agentic-first-frontend-stack.md` — portal stack and the
closed-SDLC verification harness (the load-bearing half).
- `openspec/specs/` — the living capability specs (IDs resolve via reqstool).
## Invariants (never violate without an ADR)
1. Served content is always an approved, SHA-pinned snapshot; upstream changes
never propagate without re-ingestion + re-approval.
2. The quarantine repository is never exposed by the facade.
3. Every fetch and every admin action lands in the append-only ledger.
4. The browser never holds tokens (app-as-BFF); git clients use hashed PATs.
5. New behavior = reqstool requirement + SVC + test before implementation ships.
## New decisions
Architecture-level choices get a new ADR in `docs/decisions/` (next number),
referenced from docs