{
 "schema": "aiblocks-page/1",
 "id": "agency-engineering-software-architect",
 "type": "agent",
 "name": "Software architect",
 "summary": "Choose how to structure your software, with at least two options, their trade-offs, a recommended design and a written decision record.",
 "headline": "Software architect",
 "subhead": "Give it your goal, your team size, your stack and what must scale. It compares at least two ways to structure the system, names what each one costs, and recommends one. You get a design write-up and a decision record your team can sign off.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "document",
   "required": true,
   "label": "Document",
   "what": "a finished document, such as a Word file, a PDF or a page of notes"
  }
 ],
 "you_give": [
  "The goal of the system and who uses it",
  "Limits, such as team size, budget, deadlines and rules you must follow",
  "Your current stack and what hurts today (optional if new)",
  "What you expect to grow, such as users, data or features",
  "The decision you must make, if you have one (optional)",
  "A description of your code layout or a key folder tree (optional)"
 ],
 "you_get": [
  "A short problem statement with your limits written back to you",
  "A map of the main business areas and where the system splits",
  "At least two options, each with what it gives and what it costs",
  "A recommended design and the reasons for it",
  "A decision record with context, decision and consequences",
  "A growth path, so the system can change without a rewrite"
 ],
 "use_when": [
  "You are starting a product and must choose between one app, a modular app or separate services.",
  "Your codebase is tangled and every change breaks something far away.",
  "A team argues about a technical choice and you need the trade-offs written down.",
  "A new feature, such as payments or a partner link, needs a clear boundary around it."
 ],
 "skip_when": [
  "You need an API and data layout for one backend. Use the Backend Architect agent.",
  "You want a bug fixed or a pull request reviewed. Use the Code Reviewer agent or the Focused code fix developer.",
  "You want a threat review of a design. Use the Security Architect agent.",
  "You want a quick test of an idea. Use the Software prototype designer."
 ],
 "output_sample": {
  "input": [
   "Your goal and who uses the system",
   "Team size, limits and deadlines",
   "Your stack and what hurts today (optional)",
   "The decision you must make (optional)"
  ],
  "prerequisites": [
   "An AI chat such as Claude, ChatGPT or Gemini"
  ],
  "output": [
   {
    "name": "Problem and limits",
    "contains": "Your goal, team, limits and expected growth, written back so you can correct them."
   },
   {
    "name": "Business areas",
    "contains": "The main areas of the system, what each owns and how they talk to each other."
   },
   {
    "name": "Options",
    "contains": "At least two structures, each with what it gives, what it costs and when it fits."
   },
   {
    "name": "Recommendation",
    "contains": "The chosen option, the reasons and what you give up by choosing it."
   },
   {
    "name": "Boundary rules",
    "contains": "Which parts may depend on which, and why."
   },
   {
    "name": "Decision record",
    "contains": "Context, decision and consequences, in a form your team can sign off."
   },
   {
    "name": "Growth path and open questions",
    "contains": "How the system changes later without a rewrite, and what is still unsettled."
   }
  ]
 },
 "output_shape": "ARCHITECTURE PROPOSAL: <system name>\n\nPROBLEM AND LIMITS\n  Goal: <goal> | Team: <size and skills> | Limits: <list> | Expected growth: <list>\n\nBUSINESS AREAS\n  <area> | <what it owns> | <how it talks to others>\n\nOPTIONS (at least two)\n  <option> | <what it gives> | <what it costs> | <when it fits>\n\nRECOMMENDATION\n  <chosen option> | <reasons> | <what you give up>\n\nBOUNDARY RULES\n  <rule> | <why>\n\nQUALITY CHECKS\n  Scale: <note> | Failures: <note> | Upkeep: <note> | Visibility: <note>\n\nDECISION RECORD\n  Status: Proposed | Context: <text> | Decision: <text> | Consequences: <text>\n\nGROWTH PATH AND OPEN QUESTIONS\n  <step or question> | <trigger or how to settle it>",
 "how_to_use": [
  "Download the pack from this page and add it to your AI as a skill. If you cannot, paste SKILL.md into a new chat, then references/source-agent.md.",
  "Describe the goal, the team, the stack and what will grow. Say what decision you need to make.",
  "Say \"Write the architecture proposal. Ask me once if anything is missing.\"",
  "Read the options section first. Check each option's costs against what your team can actually run.",
  "Challenge the recommendation with the agent's own question, \"What happens when this part fails?\" Ask it to answer.",
  "Save the decision record in your project folder, and share it with your team before you build."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Software developer from specifications",
   "url": "https://useaiblocks.com/skills/spec-builder",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-software-architect.md",
  "licence": "MIT",
  "original_name": "Software Architect",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Software Architect",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-software-architect.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-engineering-software-architect",
  "markdown": "https://useaiblocks.com/agents/agency-engineering-software-architect.md",
  "json": "https://useaiblocks.com/agents/agency-engineering-software-architect.json",
  "instructions": "https://useaiblocks.com/skills/agency-engineering-software-architect/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-engineering-software-architect.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-engineering-software-architect",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-engineering-software-architect",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
