The software architecture documentation decision record: why the documentation model you chose determines your architecture decision visibility ceiling and your tribal knowledge concentration rate

Software architecture documentation decisions are not choices about which tool to use or whether to follow the C4 model or arc42. They are a set of founding decisions about what information the engineering team treats as requiring preservation, how it is captured at architectural decision time versus retrospectively, where it lives relative to the code it describes, and who owns keeping it current — decisions with structural consequences that are invisible when the team is small and intact, and visible only when a critical engineer leaves without warning, when a new engineer makes a confident architectural change based on documentation that has not reflected reality for eleven months, or when a board-level due diligence review reveals that an engineering team of seventy cannot produce a coherent account of why the system's three most load-bearing architectural choices were made.

A 22-person developer tools SaaS had been operating for four years. The lead architect had joined at founding and had made, with the CEO and two other engineers who had since left, the foundational decisions that the system was built around: a single-tenant data model where each customer's data lived in an isolated SQLite file served by a dedicated process, an event-sourcing pattern for the decision log storage layer that predated the company's pivot from a different product and carried implicit constraints that the new product had been built around without fully understanding them, and a deployment architecture where the customer-facing API and the background processing workers shared a single binary to reduce operational complexity during the early stages — a constraint that had never been formally documented but that had shaped every subsequent decision about background job scheduling, rate limiting, and horizontal scaling. None of this had been written down beyond a Notion page from 2023 that described the single-tenant model in two sentences and contained a diagram last updated eight months before the company's most recent architectural pivot.

The lead architect gave three weeks' notice in February. In the week before departure, the engineering team conducted an architecture knowledge transfer that produced six hours of recorded video, a forty-page Notion document, and a whiteboard session that identified, in the final two hours, a constraint that no one had thought to ask about until then: the event-sourcing implementation used a custom compaction algorithm that had a subtle ordering invariant — log segments could only be compacted in strict insertion order, and any out-of-order compaction would silently corrupt the decision log in a way that was undetectable until a customer attempted to export a decision record that had been compacted out of the canonical chain. The constraint was not in any code comment. It was in the lead architect's memory, surfaced only because a junior engineer had asked a question about the background worker in the final hours of the knowledge transfer session.

The team spent eleven weeks after the departure reverse-engineering the architectural constraints that the system was built around. The multi-tenant migration that had been planned for Q2 — the company's most strategically important infrastructure project, enabling a pricing model change that the board had been waiting for — was delayed by eleven weeks because the migration plan that the remaining engineers had drafted before the departure assumed a clean separation between customer data contexts that the single-tenant architecture did not actually provide: the background worker's state management had a cross-customer locking dependency that was invisible from the API layer's code but would have caused systematic deadlocks under the multi-tenant model. The deadlock was discovered during integration testing, not during architectural review, because there was no documentation artifact that described the background worker's locking model in terms that would have made the cross-customer dependency visible at design time. The eleven-week delay was not caused by the lead architect's departure — it was caused by the absence of any documentation model that required architectural constraints to be captured at decision time rather than at departure time. Three years of architectural decisions had accumulated as tribal knowledge in a person rather than as structured artifacts in the system the decisions governed. Connect this to the technical debt decision record: the undocumented architectural constraints that the multi-tenant migration surfaced were not technical debt in the traditional sense — the code was correct and well-structured — they were documentation debt, and documentation debt is invisible in a way that code debt is not because no linter, no code review, and no CI pipeline checks for it.

A 47-person B2B analytics platform had built its system on a microservices architecture with six internal services. During the initial system design in early 2024, the engineering team had invested significantly in architecture documentation: a C4 context and container diagram maintained in Structurizr, a decision log in the form of fifteen ADRs covering the major architectural choices (event bus selection, storage model for each service, service boundary definitions, inter-service communication protocol), and a system-wide constraints document describing the latency budget assumptions that had shaped the service boundary decisions. The documentation had been comprehensive, current, and genuinely useful — the first three engineers who joined the team after the initial design had onboarded substantially faster than comparable hires at previous companies, which the engineering director attributed directly to the documentation quality.

Nineteen months later, the documentation had received no substantive update. In the intervening period, two of the six original services had been refactored into four services — the analytics aggregation service had been split into a stream processing service and a batch aggregation service, and the user event collection service had been split into a collection service and a validation service — with no corresponding update to the C4 container diagram or the ADRs that described the original service boundaries. Three of the fifteen ADRs described design decisions for components that had since been refactored out of existence. The system-wide constraints document described a latency budget of 200ms for inter-service calls that had been revised to 500ms eighteen months earlier when load testing revealed that the 200ms budget was unreachable under realistic query loads. The Structurizr diagram that new engineers were pointed to during onboarding described a six-service architecture that the production system had not resembled for thirteen months.

A senior engineer joined the team in month twenty and was tasked with designing the integration between the analytics platform and a new data export service. The engineer read the architecture documentation, understood the inter-service communication model from the ADRs, and designed the export service integration against the documented 200ms latency budget with a circuit breaker configuration tuned to that budget. The integration shipped to staging in the fourth sprint and immediately failed load tests: the batch aggregation service — which the documentation described as the analytics aggregation service, a component whose interface contract the export service integration depended on — had a p99 response time of 380ms under staging load, well above the documented 200ms budget and outside the circuit breaker's configured tolerance window. Two sprints of integration rework followed. The senior engineer's design had been technically competent; the documentation they had worked from had not described the system they were integrating with. Connect this to the documentation strategy decision record: the failure was not that the team had built the wrong documentation system — they had built a good one — but that the documentation model had no currency mechanism; there was no process that connected architectural change events (the service split, the latency budget revision) to documentation update events, and in the absence of that connection the documentation had drifted from reality at the pace of the architectural changes the system had undergone, which was substantial.

A 78-person enterprise SaaS had adopted a comprehensive architecture documentation system eighteen months before this account. The head of engineering had invested in the tooling: Structurizr for the C4 model, maintained as code in a dedicated architecture repository with a CI pipeline that validated the DSL and generated diagrams on merge; a structured ADR format requiring six sections (context, decision, status, consequences, alternatives considered, review date); and a documentation update policy that required an ADR or diagram update for any pull request that touched a service interface, added or removed a service dependency, or changed a shared data model. The documentation system was technically correct. It was well-structured, version-controlled, and enforced at code review time. In the quarterly architecture review eighteen months after adoption, the head of engineering ran a calibration check: take the last four quarters of documentation update tickets and verify whether the updates in those tickets accurately reflected the changes they claimed to document.

Of the 214 documentation update tickets created in the prior four quarters, 156 had been approved in pull requests with review times under four minutes and no reviewer comments on the documentation content. Spot-checking twenty of those 156 tickets revealed that seventeen contained documentation that did not accurately describe the changes in the associated code pull request: ADRs where the "alternatives considered" section described alternatives that the PR author had copied from a previous ADR without adapting them to the current decision, C4 diagram updates where the component added in the code change was absent from the diagram update because the diagram DSL was more complex than the PR author had time to learn under sprint pressure, and one ADR where the status was marked "Accepted" for a decision that the PR author had actually reversed in the same PR by reverting to the previous implementation. The engineers had not been negligent — they had been working under the documentation maintenance burden that the system imposed, which the head of engineering's own calculation showed averaged nine engineer-hours per sprint distributed across the team. That burden represented approximately 11% of the team's sprint capacity, applied to documentation rather than to the product work that the team was also expected to deliver. The engineers had found the only equilibrium available to them: approve the documentation form while minimizing the effort spent on the documentation content. The result was documentation that was structurally correct (every ADR had six sections, every C4 diagram had the right component types) and substantively wrong in ways that were harder to detect than obvious placeholder text or missing sections. Connect this to the code review policy decision record: the documentation review failure was also a code review failure — the review process had not developed the norms for evaluating documentation quality that it had for evaluating code quality, and in the absence of those norms, reviewers defaulted to approving documentation artifacts that were formally complete rather than substantively accurate; calibrating the review process to catch substantive documentation errors requires the same investment in reviewer training and review criteria specification that calibrating a code review process for catching logic errors rather than only style errors requires.

Structural properties set by the software architecture documentation decision

Two structural properties are determined by the founding decisions about what architectural information is captured, when, where, and how its currency is maintained. Both properties are invisible when the engineering team is stable, the system is small, and the planning horizon is short. Both become visible under the stress conditions that every engineering organization eventually encounters: a critical engineer departure, a new hire making a confident change against stale documentation, or a planning exercise that requires a coherent account of why the system is the way it is.

Property 1: Architecture decision visibility ceiling. The architecture decision visibility ceiling is the maximum proportion of current architectural decisions that are visible to engineers who were not present when those decisions were made — the degree to which an engineer joining the team today can understand not just what the system does and how it is structured, but why it is structured that way and what constraints that structure implies for future changes. The ceiling is set primarily by whether the documentation model captures decision reasoning (the problem being solved, the alternatives considered, the constraints that ruled alternatives out, and the consequences the team anticipated) rather than only structural outcomes. A team whose documentation consists entirely of diagrams showing what exists has a visibility ceiling near zero for the questions that matter most during architectural change: "why is this boundary here rather than there," "what are the implicit assumptions this component makes about its deployment environment," "what alternatives were evaluated and why were they rejected." Those questions are not answerable from structural diagrams. The ceiling is also bounded by the documentation's currency: even a documentation model that correctly captures decision reasoning at time-of-decision has a ceiling that decreases as the gap between the documentation's last-updated date and the current system state widens. The 47-person analytics platform had a high visibility ceiling at month zero and a low one at month nineteen — not because the documentation model was wrong but because the model had no mechanism for maintaining currency as the system evolved. The effective visibility ceiling is the minimum of the model's theoretical maximum and the currency decay rate imposed by the gap between architectural change events and documentation update events.

Property 2: Tribal knowledge concentration rate. The tribal knowledge concentration rate is the rate at which architectural system understanding accumulates in specific individuals rather than in shared artifacts — the ongoing flow of undocumented architectural constraint into engineers' mental models rather than into the documentation system. A high concentration rate is not visible while the engineers who hold the knowledge are present; it becomes visible acutely when they leave, and chronically in the form of new engineers who cannot reach full architectural autonomy because there is a layer of undocumented system constraint that they can only access by asking the engineers who hold it. The concentration rate is determined by the intersection of documentation scope (whether the documentation model has an explicit category for cross-cutting constraints — system-wide assumptions about consistency, latency, deployment topology — that are not visible from any single component), documentation workflow integration (whether architectural change events in the engineering process automatically trigger documentation updates, or whether documentation is a separate activity that competes with delivery work for sprint capacity), and offboarding protocol (whether engineer departures include a structured knowledge transfer step that feeds undocumented constraints into the documentation system). The 22-person SaaS had a high concentration rate for three years without visible consequence because the engineers who held the knowledge were still present. The concentration became visible at departure in the form of an ordering invariant constraint that appeared in no artifact and was recoverable only from the lead architect's memory under the time pressure of a three-week notice period. Connect this to the engineering onboarding ramp decision record: the tribal knowledge concentration rate is directly observable during new engineer onboarding — an engineer who asks questions that require another engineer to answer from memory rather than from a document is a signal of concentrated knowledge; tracking what questions new engineers cannot answer from documentation is a leading indicator of the concentration rate before it manifests as a departure-driven knowledge crisis.

The software architecture documentation ADR: five sections

Section 1: Documentation scope and granularity model. The documentation scope model specifies what categories of architectural information are treated as requiring preservation and at what level of detail. The most important scoping decision is distinguishing between documentation of structural outcomes (what was built and how it is connected) and documentation of decision reasoning (why it was built that way, what alternatives were evaluated, and what constraints governed the choice). Structural documentation — C4 diagrams, component inventories, service dependency graphs — is valuable for orientation but has a low information density per maintenance cost: it requires significant effort to keep current and becomes misleading rather than helpful when it is not current, because readers who encounter a diagram that is mostly accurate will trust the inaccurate parts alongside the accurate parts. Decision reasoning documentation — ADRs, constraint registers, architectural assumption logs — has a higher information density per maintenance cost because the reasoning for a decision does not change when the system evolves (the system may have evolved because the original reasoning was superseded, but that evolution should itself be documented as a new decision, not as an update to the original). The scope model should specify for each documentation category: the trigger event that initiates a documentation artifact (architectural change, new dependency, significant refactoring), the minimum content required for that artifact type, and the maximum level of detail the team will maintain. Greedily expanding the scope and detail requirements for documentation produces the 78-person enterprise pattern: a comprehensive documentation system that engineers maintain in form but not in substance because the maintenance burden exceeds available capacity. The scope model should be calibrated to the minimum detail that makes a new engineer's first architectural decision better informed than the same engineer without the documentation, not to the maximum detail that the team could theoretically produce.

Section 2: Documentation location and discovery model. The documentation location model specifies where architectural artifacts are stored and how engineers find them when they need them. The primary axis is proximity to the code: in-repo documentation (ADRs in a docs/decisions/ directory, architectural README sections, inline decision comments at non-obvious implementation points) versus out-of-repo documentation (wiki, Notion, Confluence, dedicated documentation portals). In-repo documentation has three structural advantages: it is updated in the same pull request as the code change it documents, making temporal drift visible in the git log and making documentation updates subject to the same code review process as code changes; it is discoverable from the repository's root README without requiring access to a separate system; and it travels with the code when the repository is forked, cloned, or migrated. Out-of-repo documentation has two cases where it is justified: system-level documentation that spans multiple repositories (a cross-service C4 diagram that no single service repository owns) and documentation intended for audiences without repository access (product leadership, customer-facing technical documentation). In both cases, the out-of-repo documentation should reference the in-repo decision records rather than duplicate them, with the out-of-repo artifact serving as a navigation layer into the canonical records rather than as an independent documentation store. The discovery model should be explicit: a new engineer should be able to find the ADR that explains why the service boundary between two components is where it is within two minutes of encountering the boundary in the code, either through a link in the code, a link in the repository README, or a documented search pattern in the onboarding guide. If the discovery path requires more than two steps from the code to the relevant decision record, the documentation will not be found under time pressure, which is the condition under which it is most needed.

Section 3: Documentation currency and update trigger model. The documentation currency model specifies the events that trigger documentation updates and the process that ensures those events are connected to documentation artifact updates before the change is complete. The most effective currency mechanism is embedding the documentation update requirement into the code review checklist for the class of changes that modifies architectural assumptions: any pull request that adds a new service dependency, modifies a service interface contract, changes a data storage model, introduces a new external integration, or revises a cross-cutting configuration (timeout values, retry policies, authentication model, caching strategy) should require a documentation artifact update as a precondition for merge approval. The trigger criteria should be specific enough to apply consistently — "architectural change" is not specific enough; "change that modifies a service's interface contract or adds a dependency on a service or external system not currently in the dependency graph" is specific enough — but not so broad that every pull request requires documentation review. The ADR should specify what happens when the trigger criteria are ambiguous: who makes the determination, and whether the default in ambiguous cases is to require documentation or to not require it. (Defaulting to requiring documentation in ambiguous cases and having documentation reviewers make explicit skip decisions is preferable to defaulting to skip and relying on engineers to volunteer documentation updates.) The update trigger model should also specify a quarterly calibration check: compare the set of significant architectural changes in the last quarter (identifiable from merged pull requests above a threshold size or affecting identified architectural components) against the set of documentation updates in the same period, and identify divergences. Divergences indicate either trigger criteria that are too narrow (changes that should have triggered documentation did not) or update process failures (triggers fired but the documentation update was insufficient). Both failure modes require a process correction, not a documentation catch-up sprint.

Section 4: Tribal knowledge audit and coverage model. The tribal knowledge audit model specifies how the team identifies undocumented architectural constraints and how that identification feeds back into the documentation system. Two trigger events reliably surface undocumented constraints: new engineer onboarding and engineer departures. New engineer onboarding surfaces undocumented constraints when new engineers ask questions that senior engineers can only answer from memory rather than from a document — questions about why a component works the way it does, what assumptions can be safely changed and what assumptions are implicit constraints, what the system will do in failure modes that are not covered by the code's explicit error handling. Tracking these questions — maintaining a structured log of "questions that required a senior engineer to answer from memory" during each new hire's first ninety days — is the most sensitive early-warning system available for tribal knowledge concentration, and it produces a direct backlog of documentation gaps that is grounded in actual information needs rather than in an abstract documentation completeness model. Engineer departures surface undocumented constraints through a structured offboarding knowledge transfer protocol that is distinct from the standard offboarding checklist (returning equipment, access revocation, handover of in-flight work). The knowledge transfer protocol should include a structured session where the departing engineer is asked specifically about: implicit constraints in the systems they owned that are not documented anywhere, architectural decisions they were involved in that were not formally recorded, and system behaviors that they know about and believe other engineers do not. The session output should produce documentation artifacts before the engineer's last day, not video recordings of the engineer explaining what they remember — recordings require future engineers to watch video to find architectural information, which is not a sustainable discovery model. Connect this to the API documentation strategy decision record: the knowledge audit model for internal architectural documentation is analogous to the coverage audit for external API documentation — in both cases, the practical test is whether the intended audience (a new engineer onboarding, an external developer integrating with the API) can find the information they need in the documentation without asking a person, and in both cases the audit metric is the rate of questions that require a person rather than a document to answer.

Section 5: Documentation health measurement and calibration cadence. The documentation health measurement model specifies what metrics indicate whether the documentation system is achieving its purpose, how frequently those metrics are measured, and what corrective actions are triggered when the metrics indicate failure. Three metrics are sufficient for a documentation health model that is sustainable rather than compliance-theater. First: documentation currency rate — the proportion of architectural change events in the last quarter that have a corresponding documentation artifact update, measured by comparing the merged pull requests that meet the trigger criteria against the documentation artifacts updated in the same period. A currency rate below 70% indicates that the trigger model is failing, either through inadequate trigger criteria or inadequate review process enforcement. Second: documentation discovery rate — measured during new engineer onboarding through a structured test: present the new engineer with three architectural questions (questions about why a system component is designed a specific way, selected from the set that senior engineers can answer from memory) and measure how many of those questions the new engineer can answer correctly from documentation alone within fifteen minutes. A discovery rate below two out of three indicates either documentation scope gaps (the relevant information is not in any artifact) or documentation discovery failures (the information exists but the new engineer cannot find it within the discovery model). Third: documentation accuracy spot check — a quarterly review of ten randomly selected documentation artifacts, each verified against the current codebase by an engineer who did not write the artifact, checking whether the artifact accurately describes the current system. An accuracy rate below 80% indicates that currency mechanisms are failing at the content level, not just the trigger level — the 78-person enterprise pattern where documentation is updated in form but not in substance. The calibration cadence should run quarterly, owned by the engineering director or head of engineering rather than distributed across teams, and should produce a written record of what the metrics showed and what process changes were made in response — because the calibration record itself is an architectural decision log for the documentation system, and without it the same failure modes recur quarterly with no institutional memory of what was tried and what it changed.

FAQ

What should software architecture documentation include?

Software architecture documentation should include the decisions that are not visible from reading the code: why the system is structured the way it is (the problem the architecture solves, the alternatives that were rejected, and the constraints that governed the choice), the implicit constraints the system is built around (latency budgets, consistency guarantees, deployment topology assumptions, third-party dependency contracts), and the consequences of architectural choices that the team anticipated when making them. What it should not include, or should include only in secondary reference form, is a complete description of what was built — the code is the authoritative record of what was built. The most common scope error is inverting this priority: producing detailed structural diagrams of what exists while writing no explanation of why the structure is what it is. A complete C4 model with no ADR layer explaining why the system uses event sourcing, why the service boundary is where it is, and why the read model is denormalized in the way it is, produces documentation that is useful for orientation and useless for architectural decision-making. The practical test for whether a documentation artifact is worth maintaining is whether a senior engineer joining the team six months from now would make better architectural decisions having read the documentation than the same engineer without it — specifically, whether they would avoid incorrect assumptions about the system's constraints that would otherwise cause them to propose changes the team has already evaluated and rejected.

How do you prevent architecture documentation from going stale?

Architecture documentation goes stale because the event that triggers a documentation update (an architectural change) is separated from the workflow where that event occurs (code review, design review, deployment). Preventing drift requires connecting the documentation update trigger to the change event rather than relying on engineers to remember documentation as a separate post-merge step. The most effective mechanism is requiring an ADR update or creation as part of the code review checklist for any change that modifies a service interface, adds a service dependency, changes a storage model, or alters a cross-cutting concern. This does not mean every code change requires documentation — it means that the class of changes that modifies architectural assumptions is identified at code review time, and the documentation update is a precondition for merge rather than a post-merge action item. The second mechanism is a quarterly calibration check comparing architectural changes against documentation updates in the same period. If the quarterly check finds significant divergence, the trigger model is failing and requires a process correction — not a documentation catch-up sprint, which returns to the same state four quarters later.

Where should software architecture documentation live?

Software architecture documentation should live as close to the code it describes as the documentation type allows. Architecture decision records belong in the repository they govern, under a docs/decisions/ or docs/adr/ directory, versioned alongside the code and referenced from the system or service README. In-repo documentation is updated in the same pull request as the code change it documents, making the documentation and code change reviewable together, and it travels with the code when the repository is forked or migrated. Wiki-based documentation is justified for cross-repository architectural documentation that no single service repository owns, and for documentation intended for audiences without repository access. In both cases, the wiki should link to canonical in-repo decision records rather than duplicate them. Documentation that exists in two places with no single defined source of truth will diverge — not immediately, but consistently over time as the two copies are updated by different people on different cadences with different levels of context about whether the change they are documenting is the authoritative version or the copy.

How do AI chat sessions factor into software architecture documentation decisions?

Software architecture documentation decisions are among the decisions most thoroughly worked through in ChatGPT or Claude sessions — a CTO asking how to reconstruct architectural constraints from code, git history, and Slack logs after losing a lead architect; an engineering director asking how to assess the gap between stale documentation and current reality without a documentation sprint in the roadmap; a head of engineering asking how to reduce a nine-engineer-hour-per-sprint documentation maintenance burden without losing the visibility the docs provide. These sessions contain the documentation reasoning that architecture tools do not preserve: what implicit constraints the departing architect identified as undocumented, what the specific divergences between documentation and codebase were when the audit ran, and what the original intent of the documentation model was before it encountered real sprint pressure. Running those sessions through the open-source extractor before an architecture review produces the decision log that makes the review useful: not just "our architecture docs are out of date" but "we chose wiki-based documentation because we wanted rich diagrams and anticipated that drift was a risk, and that risk materialized exactly as predicted — which means the corrective action is the one we identified and didn't implement, not a new tooling evaluation."

Further reading

  • Technical debt decision record — undocumented architectural constraints are a form of documentation debt that is invisible to the tooling that surfaces code debt (linters, coverage reports, dependency audits), and the two forms of debt interact: technical debt that accumulates from architectural decisions made without a full understanding of the system's existing constraints is the specific failure mode that documentation debt produces when an engineer makes a change that the documentation should have warned against but didn't, because the documentation did not capture the constraint the change violated; the technical debt decision record's framework for classifying and prioritizing debt should include a documentation debt category measured by the currency rate and discovery rate metrics described here.
  • Documentation strategy decision record — the documentation strategy decision covers the organization's overall approach to technical documentation across all artifacts (API documentation, runbooks, architecture documentation, onboarding guides), while the software architecture documentation decision record covers the specific decisions about how architectural reasoning is preserved; the two decisions share the location, currency, and scope tradeoffs but differ in audience (API documentation serves external consumers; architecture documentation serves future members of the engineering team making decisions under uncertainty) and in the consequence of staleness (stale API documentation causes integration failures with external systems; stale architecture documentation causes incorrect internal architectural decisions).
  • Engineering onboarding ramp decision record — new engineer onboarding is the most sensitive diagnostic available for documentation quality: the questions a new engineer cannot answer from documentation are the documentation gaps with the highest consequence, because they are the gaps that are activated by engineers unfamiliar with the system's undocumented constraints; the onboarding ramp model and the documentation model should be designed together, with the documentation discovery rate during onboarding as a shared health metric that informs both the ramp model (how long does onboarding take and what does it cost?) and the documentation model (what information gaps are producing the longest onboarding delays?).
  • Code review policy decision record — the code review process is the most reliable enforcement point for documentation currency: a documentation update trigger embedded in the code review checklist for architectural changes connects the documentation update to the change event before the change is merged, which is the only mechanism that reliably prevents the drift pattern where changes accumulate and documentation updates are deferred to a catch-up sprint that is always scheduled and never prioritized; the code review policy decision determines the checklist structure, the reviewer expertise requirements, and the approval criteria, and the documentation trigger belongs in that policy rather than as a separate documentation compliance process that competes with the review process for reviewer attention.
  • Open-source extractor — software architecture documentation decisions are among the decisions most consistently worked through in AI chat sessions: a CTO reasoning through how to structure a knowledge transfer protocol before a lead architect's departure, an engineering director designing a documentation scope model that captures decision reasoning without imposing a maintenance burden that engineers will game, a head of engineering evaluating whether to adopt Structurizr as-code or a wiki-based C4 approach and reasoning through the currency implications of each choice, or an engineering manager trying to understand why the documentation update process that looked correct in the review checklist produced structurally complete but substantively wrong ADRs in the quarterly spot check; those sessions contain the documentation model reasoning that the team's architecture tools and project trackers do not preserve, and running them through the extractor before an architecture governance review produces the decision log that distinguishes a documentation failure caused by the wrong model from one caused by the right model implemented incorrectly.