Seed rdev.v2.json, rd_ templates, catalog policy (order 40), squad kind orchestration, and hard precheck requiring completed main (CDO). Includes StageKey dynamicization from P0 and docs for P2–P4 skeleton. Co-authored-by: Cursor <cursoragent@cursor.com>
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package workflowdef
|
||
|
||
import (
|
||
"embed"
|
||
"encoding/json"
|
||
"fmt"
|
||
)
|
||
|
||
//go:embed manifests/*.json
|
||
var manifestFS embed.FS
|
||
|
||
// LoadManifestDefinition 读取内嵌 v2 manifest(Phase 4 发布种子)。
|
||
func LoadManifestDefinition(filename string) (VersionDefinition, error) {
|
||
raw, err := manifestFS.ReadFile("manifests/" + filename)
|
||
if err != nil {
|
||
return VersionDefinition{}, fmt.Errorf("read manifest %s: %w", filename, err)
|
||
}
|
||
var def VersionDefinition
|
||
if err := json.Unmarshal(raw, &def); err != nil {
|
||
return VersionDefinition{}, fmt.Errorf("parse manifest %s: %w", filename, err)
|
||
}
|
||
if def.SchemaVersion <= 0 {
|
||
def.SchemaVersion = 2
|
||
}
|
||
return def, nil
|
||
}
|
||
|
||
// V2ManifestFiles 正式工作流 v2 manifest 文件名(医疗四 + 软件两)。
|
||
var V2ManifestFiles = map[string]string{
|
||
"main": "main.v2.json",
|
||
"product_manager": "product_manager.v2.json",
|
||
"test_manager": "test_manager.v2.json",
|
||
"rdev": "rdev.v2.json",
|
||
"software_bootstrap": "software_bootstrap.v2.json",
|
||
"software_delivery": "software_delivery.v2.json",
|
||
}
|