decomposer: generate deliverable files for Discover and structure the solution's functional requirements, non-functional requirements, constraints, assumptions, and open questions without selecting cloud products.; Select Google Cloud products from the confirmed requirements and produce the solution architecture, Mermaid diagram, architecture description, and Terraform infrastructure-as-code.; Validate the Terraform infrastructure and architecture artifacts without deploying resources by running formatting checks, Terraform validation, and a dry-run or plan-oriented deployment check.; Package the approved requirements, architecture, Mermaid diagram, Terraform IaC, and validation results into solution-architecture-guide.md in the gcp_solution_architecture_agent repository.; Verify that the gcp_solution_architecture_agent repository contains the packaged solution-architecture-guide.md with the approved workflow outputs.; Verify that the repository is derived from the workflow_agent template and implements the complete four-phase Google Cloud solution architecture workflow alongside the packaged guide.; Publish the verified gcp_solution_architecture_agent repository with its completed workflow implementation and solution architecture guide.; Verify that the published repository revision contains the completed workflow implementation and solution architecture guide.
Some checks failed
validation / verify (push) Failing after 9s
Some checks failed
validation / verify (push) Failing after 9s
This commit is contained in:
@@ -1,20 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Offline checks for the architecture package; no cloud calls or provisioning."""
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
requirements = (ROOT / "requirements-spec.md").read_text()
|
||||
architecture = (ROOT / "architecture.md").read_text()
|
||||
guide = (ROOT / "solution-architecture-guide.md").read_text()
|
||||
terraform = (ROOT / "terraform/main.tf").read_text()
|
||||
|
||||
required = {
|
||||
"requirements": ["Functional requirements", "Non-functional requirements", "Constraints", "Assumptions", "Open questions"],
|
||||
"architecture": ["Selected Google Cloud products", "Mermaid diagram", "Architecture description"],
|
||||
"guide": ["Validation results", "Repository verification", "Publication verification"],
|
||||
"terraform": ["required_providers", "google_cloud_run_v2_service", "google_pubsub_topic"],
|
||||
}
|
||||
for label, needles in required.items():
|
||||
text = {"requirements": requirements, "architecture": architecture, "guide": guide, "terraform": terraform}[label]
|
||||
missing = [needle for needle in needles if needle not in text]
|
||||
assert not missing, f"{label} missing: {missing}"
|
||||
assert "Product selection deferred during this step: **true**" in requirements
|
||||
print("artifact structure checks passed")
|
||||
import re, sys
|
||||
root = Path(__file__).parents[1]
|
||||
required = ["requirements.md", "architecture.md", "architecture.mmd", "solution-architecture-guide.md", "terraform/main.tf", "terraform/variables.tf"]
|
||||
missing = [p for p in required if not (root / p).is_file()]
|
||||
text = (root / "solution-architecture-guide.md").read_text()
|
||||
checks = ["Functional requirements", "Selected products", "Validation results", "Terraform", "Mermaid"]
|
||||
missing += [f"guide section: {x}" for x in checks if x not in text]
|
||||
if not re.search(r"flowchart|graph", (root / "architecture.mmd").read_text()): missing.append("Mermaid graph")
|
||||
if missing:
|
||||
print("FAIL: " + ", ".join(missing)); sys.exit(1)
|
||||
print("PASS: required architecture artifacts and guide sections are present")
|
||||
|
||||
Reference in New Issue
Block a user