gradeNot graded
propose-architectureAction
Replace the canvas with a starting architecture built from a plain-language requirements sentence. Understands intent keywords (read-heavy, cache, background jobs / async, static assets, serverless, key-value / NoSQL, multi-region / survive a region outage, prototype / cheap) and a region name (defaults to us-east-1). Every resource is configured, placed and connected. This is a starting point — follow with resilience-lint. One undo step.
View tool JSON
{
"name": "propose-architecture",
"kind": "act",
"impl": "imperative",
"description": "Replace the canvas with a starting architecture built from a plain-language requirements sentence. Understands intent keywords (read-heavy, cache, background jobs / async, static assets, serverless, key-value / NoSQL, multi-region / survive a region outage, prototype / cheap) and a region name (defaults to us-east-1). Every resource is configured, placed and connected. This is a starting point — follow with resilience-lint. One undo step.",
"inputSchema": {
"type": "object",
"properties": {
"requirements": {
"type": "string",
"maxLength": 400,
"description": "One or two sentences describing the system, e.g. \"public web app with a Postgres database and background email jobs, must survive an availability-zone outage\"."
}
},
"required": [
"requirements"
],
"additionalProperties": false
}
}describe-architectureAnswer
List every resource on the canvas (id, kind, label, provider variant, region/zone placement) and every dependency edge. Call this first to see the current design before adding, connecting or configuring anything. Read-only.
View tool JSON
{
"name": "describe-architecture",
"kind": "answer",
"impl": "imperative",
"description": "List every resource on the canvas (id, kind, label, provider variant, region/zone placement) and every dependency edge. Call this first to see the current design before adding, connecting or configuring anything. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}add-resourceAction
Add one cloud building block to the architecture canvas. Call repeatedly to sketch a design.
View tool JSON
{
"name": "add-resource",
"kind": "act",
"impl": "imperative",
"description": "Add one cloud building block to the architecture canvas. Call repeatedly to sketch a design.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"compute",
"database",
"queue",
"load-balancer",
"object-store",
"cache",
"cdn",
"dns",
"functions",
"api-gateway"
],
"description": "Which vendor-neutral building block to add."
},
"label": {
"type": "string",
"maxLength": 40,
"description": "Short human-readable name, e.g. \"orders API\"."
}
},
"required": [
"kind",
"label"
],
"additionalProperties": false
}
}connectAction
Add a dependency edge — `from` depends on / calls `to`. Both resources must already exist.
View tool JSON
{
"name": "connect",
"kind": "act",
"impl": "imperative",
"description": "Add a dependency edge — `from` depends on / calls `to`. Both resources must already exist.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Id of the dependent resource, e.g. \"compute-1\"."
},
"to": {
"type": "string",
"description": "Id of the depended-on resource, e.g. \"database-1\"."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
}configure-resourceAction
Set an existing resource's provider variant and/or its region/availability-zone placement. Omitted fields are left unchanged.
View tool JSON
{
"name": "configure-resource",
"kind": "act",
"impl": "imperative",
"description": "Set an existing resource's provider variant and/or its region/availability-zone placement. Omitted fields are left unchanged.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Resource id, e.g. \"database-1\"."
},
"variant": {
"type": "string",
"description": "Provider service, e.g. \"rds-multi-az\". See the active profile on /learn."
},
"region": {
"type": "string",
"description": "Region id, e.g. \"us-east-1\"."
},
"az": {
"type": "string",
"description": "Availability zone, e.g. \"us-east-1a\". Omit for a regional (multi-AZ) deployment."
}
},
"required": [
"id"
],
"additionalProperties": false
}
}move-resourceAction
Set an existing resource's position on the canvas (top-left origin). Use it to lay out the diagram so the dependency flow reads clearly.
View tool JSON
{
"name": "move-resource",
"kind": "act",
"impl": "imperative",
"description": "Set an existing resource's position on the canvas (top-left origin). Use it to lay out the diagram so the dependency flow reads clearly.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Resource id, e.g. \"compute-1\"."
},
"x": {
"type": "number",
"description": "Horizontal position; 0 is the left edge."
},
"y": {
"type": "number",
"description": "Vertical position; 0 is the top edge."
}
},
"required": [
"id",
"x",
"y"
],
"additionalProperties": false
}
}remove-resourceAction
Delete a resource from the canvas by id. Any dependency edges to or from it are removed too. One undo step.
View tool JSON
{
"name": "remove-resource",
"kind": "act",
"impl": "imperative",
"description": "Delete a resource from the canvas by id. Any dependency edges to or from it are removed too. One undo step.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Resource id, e.g. \"cache-1\"."
}
},
"required": [
"id"
],
"additionalProperties": false
}
}simulate-failureAction
Knock out one availability zone (pass az) or a whole region (omit az) and report which resources go down, which degrade, and why.
View tool JSON
{
"name": "simulate-failure",
"kind": "act",
"impl": "imperative",
"description": "Knock out one availability zone (pass az) or a whole region (omit az) and report which resources go down, which degrade, and why.",
"inputSchema": {
"type": "object",
"properties": {
"region": {
"type": "string",
"description": "Region id, e.g. \"us-east-1\"."
},
"az": {
"type": "string",
"description": "Availability zone to fail, e.g. \"us-east-1a\". Omit to fail the entire region."
}
},
"required": [
"region"
],
"additionalProperties": false
}
}find-spofsAnswer
List resources that are single points of failure by construction, with the resources each would take down.
View tool JSON
{
"name": "find-spofs",
"kind": "answer",
"impl": "imperative",
"description": "List resources that are single points of failure by construction, with the resources each would take down.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}resilience-lintAction
Run rule-based resilience checks over the current design. Each finding has a severity (high / medium / low), the resource it concerns, a plain-language explanation of the risk and the fix, and a citation to the architectural principle in Designing Data-Intensive Applications (2nd ed.) behind it. Read-only: reports, changes nothing on the canvas.
View tool JSON
{
"name": "resilience-lint",
"kind": "act",
"impl": "imperative",
"description": "Run rule-based resilience checks over the current design. Each finding has a severity (high / medium / low), the resource it concerns, a plain-language explanation of the risk and the fix, and a citation to the architectural principle in Designing Data-Intensive Applications (2nd ed.) behind it. Read-only: reports, changes nothing on the canvas.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}explainAnswer
Explain a selection in plain language: its role in the design, its dependencies and dependents, what its failure would take down, and a relevant principle from Designing Data-Intensive Applications (2nd ed.). Pass a resource id (e.g. "database-1") or an edge as "from->to" (e.g. "compute-1->database-1"). Read-only: reports, changes nothing.
View tool JSON
{
"name": "explain",
"kind": "answer",
"impl": "imperative",
"description": "Explain a selection in plain language: its role in the design, its dependencies and dependents, what its failure would take down, and a relevant principle from Designing Data-Intensive Applications (2nd ed.). Pass a resource id (e.g. \"database-1\") or an edge as \"from->to\" (e.g. \"compute-1->database-1\"). Read-only: reports, changes nothing.",
"inputSchema": {
"type": "object",
"properties": {
"selection": {
"type": "string",
"description": "A resource id (\"database-1\") or a dependency edge (\"compute-1->database-1\")."
}
},
"required": [
"selection"
],
"additionalProperties": false
}
}estimate-costAnswer
Order-of-magnitude monthly cost of the current design (USD), from the bundled pricing snapshot — not a live quote. Returns the total, a per-resource breakdown, unpriced resources, and the delta since the previous estimate. Read-only.
View tool JSON
{
"name": "estimate-cost",
"kind": "answer",
"impl": "imperative",
"description": "Order-of-magnitude monthly cost of the current design (USD), from the bundled pricing snapshot — not a live quote. Returns the total, a per-resource breakdown, unpriced resources, and the delta since the previous estimate. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}generate-iacAction
Emit the current architecture as Terraform HCL for the human to review. Read-only: produces text, changes nothing. Each configured resource becomes one or more `resource` blocks with its AWS variant and placement; an alb -> compute edge wires target groups, other edges become depends_on. Network and IAM are var.* inputs, not generated. Returns a fenced hcl code block.
View tool JSON
{
"name": "generate-iac",
"kind": "act",
"impl": "imperative",
"description": "Emit the current architecture as Terraform HCL for the human to review. Read-only: produces text, changes nothing. Each configured resource becomes one or more `resource` blocks with its AWS variant and placement; an alb -> compute edge wires target groups, other edges become depends_on. Network and IAM are var.* inputs, not generated. Returns a fenced hcl code block.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"enum": [
"terraform"
],
"description": "Output format. Only \"terraform\" is supported today."
}
},
"additionalProperties": false
}
}