Setting the file. One moment. Scaffold Schemas · Scaffold · microsoft/azure-skills · Skills DocsThis file
- Number
- 8.15
- Position
- 15 of 26
- Type
- TypeScript
- Size
- 3 KB
- Lines
- 106
references/scaffold-schemas.ts
TypeScript·106 lines·3 KB
interface
ScaffoldHealingError
{
12 check: string;
13 detail: string;
14 classification: ScaffoldErrorClassification;
15}
16
17export interface ScaffoldHealingFix {
18 file: string;
19 change: string;
20 reason: string;
21}
22
23export interface ScaffoldHealingAttempt {
24 attempt: number;
25 errors: ScaffoldHealingError[];
26 fixes: ScaffoldHealingFix[];
27 result: ScaffoldHealingResult;
28 /** True when this healing attempt changed the service type or region — requires re-approval */
29 planLevelChange?: boolean;
30 /** Original service before the pivot (e.g., "App Service B1") */
31 originalService?: string;
32 /** New service after the pivot (e.g., "Container Apps Consumption") */
33 newService?: string;
34}
35
36// ─── scaffold-manifest.json ──────────────────────────────────────────────────
37
38export type SelfReviewRating = "VERIFIED" | "PLAUSIBLE" | "FLAGGED";
39
40export interface ScaffoldFile {
41 path: string;
42 type: string;
43}
44
45export interface SelfReviewFinding {
46 layer: string; // "L1" | "L2" | "L3" | "L4"
47 claim: string;
48 rating: SelfReviewRating;
49 detail: string;
50}
51
52export type IacFormat = "bicep" | "terraform";
53
54export interface ValidationCheck {
55 name: string;
56 passed: boolean;
57 detail?: string;
58}
59
60export interface ValidationResult {
61 status: "Validated" | "Partial" | "Failed";
62 checks: ValidationCheck[];
63 proof?: string;
64}
65
66/** One BLOCK failure emitted by scaffold-conformance.{ps1,sh} (Step 3c plan-conformance gate). */
67export interface ConformanceFailure {
68 id: string; // e.g. "TAGS-NO-CAMEL", "NO-PLAINTEXT-SECRET", "DB-TLS-ON"
69 detail: string;
70 file: string;
71}
72
73/** Result of the deterministic plan-conformance gate (subagent-validate.md Step 3c). */
74export interface ConformanceResult {
75 passed: boolean;
76 failures: ConformanceFailure[];
77 /** "script" when scaffold-conformance.{ps1,sh} ran; "manual" when the fallback assertion table was used. */
78 source: "script" | "manual";
79}
80
81export interface ScaffoldManifest {
82 /** Session id this manifest belongs to. */
83 sessionId: string;
84 /** UTC timestamp when scaffold completed. */
85 scaffoldCompletedUtc: string;
86 iacFormat: IacFormat;
87 /** Deployment scope for the generated IaC (deploy preflight branches on this). */
88 targetScope: "subscription" | "resourceGroup";
89 files: ScaffoldFile[];
90 /** Entry-point IaC file, e.g. "infra/main.bicep". */
91 entryPoint?: string;
92 /** Parameters file, e.g. "infra/main.parameters.json". */
93 parametersFile?: string;
94 /** Exact command the deploy phase runs to provision (read by deploy preflight). */
95 deployCommand: string;
96 /** Container Apps two-phase (infra, then image) wiring, when applicable. */
97 twoPhaseWiring?: boolean;
98 /** Ordered phase-2 steps (e.g. image build/push) for two-phase deploys. */
99 phase2Steps?: readonly string[];
100 selfReview: {
101 findings: SelfReviewFinding[];
102 healingAttempts?: readonly ScaffoldHealingAttempt[];
103 };
104 validationResult?: ValidationResult;
105 conformance?: ConformanceResult;
106}