{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "ca-skeleton-frontend/build-manifest.schema.json", "title": "artifacts/release/build-manifest.json", "description": "pnpm build 산출물. 세 branch 가 각각 다른 필드 집합을 제안하던 것을 합집합으로 확정한다 — bootstrap(FE-NFR-C04 build context), build-bundle(SLSA provenance), release-cache(release coherence 입력). 필드 추가·rename 은 Schema Owner 단독 결정이며 소비 branch 는 imports pin 으로 따라온다.", "type": "object", "additionalProperties": true, "required": ["buildId", "commit", "builtAt", "buildContext", "assetManifestHash"], "properties": { "buildId": { "type": "string", "description": "release 식별자. build-bundle D7 provenance 최소선." }, "commit": { "type": "string", "description": "빌드 대상 commit sha. build-bundle D7." }, "builtAt": { "type": "string", "format": "date-time", "description": "빌드 완료 시각(UTC ISO-8601)." }, "buildContext": { "type": "object", "description": "FE-NFR-C04. hub §14.1 'context 가 없는 숫자는 evidence 로 인정하지 않는다' 를 만족시키는 최소 build context. bootstrap 이 제안한 nodeVersion/pnpmVersion/runnerImage 를 한 객체로 묶었다.", "required": ["nodeVersion", "packageManagerVersion", "runnerImage"], "additionalProperties": true, "properties": { "nodeVersion": { "type": "string" }, "packageManagerVersion": { "type": "string" }, "runnerImage": { "type": "string" } } }, "assetManifestHash": { "type": "string", "description": "hashed asset set 의 집계 해시. release-cache 가 release coherence 판정 입력으로 소비한다." }, "assets": { "type": "array", "description": "산출된 hashed static asset 목록.", "items": { "type": "object", "required": ["path", "contentHash", "bytes"], "additionalProperties": true, "properties": { "path": { "type": "string" }, "contentHash": { "type": "string" }, "bytes": { "type": "integer", "minimum": 0 } } } } } }