Simplify policy wording while preserving explicit safeguards
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Architecture Policy
|
||||
|
||||
**Base Policy Version:** 1.1
|
||||
**Base Policy Version:** 1.2
|
||||
|
||||
**Last Updated**: 2026-09-25
|
||||
**Last Updated**: 2026-09-27
|
||||
|
||||
## Base Policy Template
|
||||
|
||||
@@ -14,14 +14,12 @@ Repositories that implement this policy should:
|
||||
2. Distinguish rules governing development from descriptions of implemented
|
||||
structure. Keep proposed changes and implementation status in their canonical
|
||||
documents under the [documentation policy](documentation.md);
|
||||
3. Reference supporting documents only when they contain useful information.
|
||||
Do not create `TODO` documents solely to populate an architectural outline;
|
||||
3. Reference supporting documents when they contain useful information;
|
||||
4. Update the `Last Updated` field to the current date; and
|
||||
5. Remove this heading (`Base Policy Template`) and the associated text.
|
||||
|
||||
This template requires substantial customization. Select topics that matter to
|
||||
the application; the examples below are not a checklist of required subsystems,
|
||||
interfaces, or supporting documents.
|
||||
This template requires substantial customization. Select topics relevant to
|
||||
the application from the examples below.
|
||||
|
||||
## Purpose And Ownership
|
||||
|
||||
@@ -31,7 +29,7 @@ and dependency rules, established invariants, and explicit non-goals.
|
||||
|
||||
Describe the concrete package inventory and implementation mechanics in internal
|
||||
documentation. Link to canonical public contracts for their exact behavior and
|
||||
to ADRs for decision rationale rather than repeating those definitions here.
|
||||
to ADRs for decision rationale.
|
||||
|
||||
## Architectural Approach
|
||||
|
||||
@@ -40,23 +38,22 @@ integrations and APIs within internal adapters. Keep domain and application
|
||||
logic independent of external integration details, and make dependency direction
|
||||
clear in the adopted policy.
|
||||
|
||||
Implement that separation with proportionate, idiomatic code. The preference
|
||||
does not by itself require an interface for every type, a fixed directory tree,
|
||||
or adapters for collaborators that have no external integration responsibility.
|
||||
Implement that separation with proportionate, idiomatic code. Choose interfaces
|
||||
and package layout to serve the application's actual boundaries. Use adapters
|
||||
for collaborators with external integration responsibilities.
|
||||
|
||||
## Adopted Constraints And Implemented Structure
|
||||
|
||||
An adopted architectural constraint governs development. It is not evidence
|
||||
that every component or capability to which it could apply already exists.
|
||||
For example, a rule that external integrations belong behind adapters can
|
||||
apply to future integrations without implying that those integrations are
|
||||
implemented or planned.
|
||||
An adopted architectural constraint governs development, including future
|
||||
functionality. For example, a rule that external integrations belong behind
|
||||
adapters applies whenever such integrations are introduced. Describe current
|
||||
structure from implemented behavior.
|
||||
|
||||
Describe implemented structure accurately. Keep proposals and implementation
|
||||
status in the roadmap, and significant decisions and their rationale in ADRs.
|
||||
When an accepted decision requires changing existing structure, identify that
|
||||
transition through those documents; do not describe the target structure as
|
||||
already implemented or treat acceptance as proof of compliance.
|
||||
transition through those documents. Describe the target structure as implemented
|
||||
when the corresponding changes land.
|
||||
|
||||
Constraints must reflect deliberately selected requirements and decisions.
|
||||
Do not promote incidental implementation choices into architectural invariants.
|
||||
@@ -81,12 +78,11 @@ application's adopted requirements, along with scenarios it explicitly excludes.
|
||||
For example, distinguish handling untrusted application input from defending
|
||||
against a privileged actor concurrently modifying the host filesystem.
|
||||
|
||||
These statements should explain the scope of the adopted architectural constraints. Excluding a scenario is not a claim that it cannot occur. Do not
|
||||
infer additional defenses or guarantees merely because a hypothetical threat
|
||||
can be described. Unsettled scope decisions should be raised for a deliberate
|
||||
Threat exclusions define the scope of the adopted requirements. Base defenses
|
||||
and guarantees on those requirements and raise unsettled scope for a deliberate
|
||||
decision under the [agent policy](agents.md).
|
||||
|
||||
Keep this discussion proportionate. A separate threat assessment or security
|
||||
document is not required merely to adopt this template. Configuration,
|
||||
operations, and internal documents retain ownership of credential supply,
|
||||
Keep this discussion proportionate to the application. A separate threat
|
||||
assessment or security document is optional when adopting this template.
|
||||
Configuration, operations, and internal documents retain ownership of credential supply,
|
||||
runtime handling, and implementation mechanisms under the documentation policy.
|
||||
|
||||
Reference in New Issue
Block a user