feat: orchestrate blocking frontend quality gates

This commit is contained in:
donghyeon-ka
2026-07-25 21:39:04 +09:00
parent 6dd5b85c8c
commit c5e218d37a
14 changed files with 1057 additions and 3 deletions
+19
View File
@@ -0,0 +1,19 @@
# Architecture overview
```mermaid
flowchart LR
Bootstrap[bootstrap / composition root] --> Presentation[presentation]
Bootstrap --> Adapters[adapters]
Presentation --> Application[application]
Adapters --> Application
Application --> Domain[domain]
Contracts[contract registries] --> Bootstrap
Contracts --> Adapters
Contracts --> Presentation
```
Dependencies point inward. Presentation calls application use cases, adapters
implement application ports, and only the composition root selects concrete
adapters. Contract registries are the single named source for routes, API
operations, environment values, storage keys, errors, queries, telemetry, and
release tokens.
+17
View File
@@ -0,0 +1,17 @@
{
"schemaVersion": 1,
"status": "pending-review",
"reviewerThreshold": null,
"reviews": {
"overview": {
"path": "docs/architecture/overview.md",
"reviewer": null,
"score": null
},
"staticDelivery": {
"path": "docs/architecture/static-delivery.md",
"reviewer": null,
"score": null
}
}
}
+21
View File
@@ -0,0 +1,21 @@
# Static asset and runtime-config delivery
```mermaid
sequenceDiagram
participant CI
participant ImmutableRelease
participant ActivePointer
participant Browser
CI->>ImmutableRelease: upload hashed assets
CI->>ImmutableRelease: upload release manifest
CI->>ImmutableRelease: upload runtime config
CI->>ImmutableRelease: probe asset reachability
CI->>ActivePointer: atomically switch HTML
Browser->>ActivePointer: fetch revalidated HTML
Browser->>ImmutableRelease: fetch no-store config and manifest
Browser->>ImmutableRelease: fetch immutable hashed assets
CI->>Browser: boot, route, API, and reload-loop smoke
```
Rollback changes the active pointer only after confirming that the prior
immutable release has a coherent HTML/assets/config/API/manifest tuple.