-
Strict phase separation: During Phase 1 (Requirements discovery), when
you ask the user clarifying questions, don't recommend, propose, or outline
any architectural designs, technical decompositions, cloud services, or
component mappings. Proposing solutions before functional and non-functional
requirements are thoroughly assessed causes confirmation bias and risks
anchoring the solution on specific products, features, or tools prematurely.
-
Iterative approval & task transitions: For each deliverable in this
workflow (technical decompositions, product recommendations, diagrams,
architectural descriptions, and deployment scripts), explicitly present your
output to the user for approval. If the user requests modifications,
iteratively revise the content until approved before progressing to the
subsequent task or phase.
-
When you can skip certain phases: If the user's prompt indicates that a
specific phase or task in this workflow is already completed or approved
(e.g., "requirements discovery stage is completed", "product selection is
approved", or "architecture is confirmed"), don't repeat that phase or task.
Instead, skip directly to the requested task (such as generating the
technical decomposition, recommending products, or compiling the solution
guide).
-
Gather the following requirements related to the workload or use case for
which the user needs assistance.
CRITICAL: You MUST NOT generate any architecture designs,
product recommendations, or technical decompositions until the user provides
these requirements.
- Functional requirements: Ask the user to describe the business processes,
activities, and use cases of their workload.
- Non-functional requirements: Ask the user to describe requirements for
security, privacy, compliance, reliability, disaster recovery, cost,
operations, performance, and sustainability.
- CRITICAL: If non-functional requirements are missing or incomplete,
you MUST ask the user to describe the requirements and explicitly explain
why they are important (e.g., because they directly dictate operational
SLAs, availability tiers, scaling configuration, cost budgets, resource
types, and the security posture) when asking the user to supply them.
- Current state: Ask whether the workload currently runs
on other cloud providers or on-premises (if yes, prompt for the architecture
of the existing deployment).
- System dependencies: Ask the user to describe any dependencies between
their application and other workloads, products, systems, or tools.
-
Review the input that the user has provided so far, and check whether there
are any ambiguities or contradictions (e.g., conflicting goals like complete
network isolation with zero internet exposure vs. real-time ingestion from
public APIs).
If you identify any ambiguities or contradictions in the user's requirements,
you must:
- Clearly describe the ambiguities and contradictions.
- Explain why the contradictory requirements cannot be simultaneously
satisfied.
- Request the user to clarify their trade-off preferences and choices to
resolve the ambiguities and contradictions.
- If the user delegates the choice to you (e.g., the user replies with
"do what you think is best" or "you decide"), then provide a clear
suggestion to resolve the ambiguity or contradiction, explain your
reasoning, and ask the user to approve your suggestion.
CRITICAL: Until all the ambiguities and contradictions that you identify
are resolved, don't recommend or generate any architecture design, technical
decomposition, or Google Cloud product recommendations. Ambiguous or
contradictory requirements lead to invalid architectural assumptions.
-
Generate a technical decomposition of the components of the workload that
breaks down the solution into logical components. Present it to the user and
obtain approval before proceeding to Phase 2.
CRITICAL: Before proceeding to Phase 2, ensure that the user has
approved the technical decomposition. Misalignment of the technical
decomposition with the user's requirements will invalidate the outputs of the
subsequent phases in this workflow.
Use the approved requirements from Phase 1 to generate a comprehensive solution
architecture.
For each task in this phase, to ensure that the generated content aligns with
the latest and official Google Cloud guidance, you must ground the generated
content by using the following resources:
For each item in the generated guidance, you must include citations to the
relevant official Google Cloud documentation pages.
-
Recommend the products and features that are appropriate for each component
of the user's workload.
CRITICAL:
- Don't recommend any products or features that are deprecated, retired,
decommissioned, or unsupported. To check the status of a product or
feature, call
developerknowledge:answer_query
or
developerknowledge:search_documents
with query strings like:
"{product_name} release status".
- If multiple products or features can be used for a component of the
workload, then do the following:
- Recommend the most appropriate product or feature. When alternative
products exist, the relevant product documentation might provide guidance
on when to choose each product. Follow that guidance.
- Mention the available alternative products or features.
- Explain the pros and cons of each alternative product or feature.
-
Present the generated product recommendations to the user and ask whether any
changes are needed.
CRITICAL: Don't generate anything further (architecture diagrams,
descriptions, or deployment configurations) in the same turn. Halt execution
immediately after listing the product choices until the user approves the
product selections.
-
After the user approves the product selections, proceed to Task 2.2.
-
Generate design recommendations and best practices to optimally configure
each component in the architecture based on the workload's requirements.
Important:
- When generating design recommendations, incorporate the following:
- Functional requirements that were gathered in Phase 1.
- Non-functional requirements that were gathered in Phase 1.
- To generate guidance for non-functional requirements, use the following
skills, as appropriate:
google-cloud-waf-security
google-cloud-waf-reliability
google-cloud-waf-cost-optimization
google-cloud-waf-operational-excellence
google-cloud-waf-performance-optimization
google-cloud-waf-sustainability
If any of the specialized
skills are not available in
your current workspace, derive design guidance directly from the
documentation references in
references/best-practices-guides.md
.
-
Present the generated recommendations to the user and obtain approval before
proceeding to Task 2.5.
Package all the generated text and code artifacts for final presentation.