@aqaf/cli 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -3
- package/index.js +20 -1
- package/package.json +4 -3
- package/vendor/aqaf/__init__.py +1 -1
- package/vendor/aqaf/adapters.py +583 -0
- package/vendor/aqaf/artifacts.py +28 -0
- package/vendor/aqaf/calibration.py +29 -0
- package/vendor/aqaf/catalogue.py +257 -0
- package/vendor/aqaf/cli.py +171 -33
- package/vendor/aqaf/cursor.py +56 -0
- package/vendor/aqaf/data/book_review_knowledge.json +1574 -0
- package/vendor/aqaf/data/documentation_checks.json +52 -0
- package/vendor/aqaf/data/review_checks.json +319 -0
- package/vendor/aqaf/data/source_registry.json +513 -1
- package/vendor/aqaf/discovery.py +580 -0
- package/vendor/aqaf/documentation.py +210 -0
- package/vendor/aqaf/evidence.py +132 -0
- package/vendor/aqaf/facets.py +63 -0
- package/vendor/aqaf/ignore.py +109 -0
- package/vendor/aqaf/knowledge.py +110 -0
- package/vendor/aqaf/markup.py +96 -0
- package/vendor/aqaf/matching.py +22 -0
- package/vendor/aqaf/portfolio.py +145 -0
- package/vendor/aqaf/project_commands.py +132 -0
- package/vendor/aqaf/projects.py +157 -0
- package/vendor/aqaf/registry.py +4 -3
- package/vendor/aqaf/review.py +446 -0
- package/vendor/aqaf/scope.py +401 -0
- package/vendor/aqaf/swift_review.py +99 -0
|
@@ -0,0 +1,1574 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"knowledge_version": "1.1.0",
|
|
4
|
+
"kind": "secondary_source_review_guidance",
|
|
5
|
+
"score_effect": "none",
|
|
6
|
+
"books": [
|
|
7
|
+
{
|
|
8
|
+
"id": "ousterhout-philosophy-of-software-design",
|
|
9
|
+
"source_id": "B13",
|
|
10
|
+
"title": "A Philosophy of Software Design",
|
|
11
|
+
"notes_path": "docs/books/ousterhout-philosophy-of-software-design.md",
|
|
12
|
+
"notes_sha256": "278641a440fba3ab9caee16bec57bfcf1bd41480021894bea3c195852f2d3bb4",
|
|
13
|
+
"primary_url": "https://www.web.stanford.edu/~ouster/cgi-bin/aposd.php",
|
|
14
|
+
"notes_primary_url": "https://www.web.stanford.edu/~ouster/cgi-bin/aposd.php",
|
|
15
|
+
"full_book_reviewed": false,
|
|
16
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
17
|
+
"edition": "2nd edition",
|
|
18
|
+
"authors": "John Ousterhout",
|
|
19
|
+
"review_summary": "A useful module hides difficult decisions behind a small contract. Count the knowledge callers need, rather than treating short files or additional layers as quality by themselves.",
|
|
20
|
+
"review_contribution": "Helps assess whether an interface reduces the knowledge a caller needs.",
|
|
21
|
+
"website_path": "/books/ousterhout-philosophy-of-software-design/",
|
|
22
|
+
"reading_references": [
|
|
23
|
+
{
|
|
24
|
+
"kind": "chapter",
|
|
25
|
+
"number": "6",
|
|
26
|
+
"title": "General-Purpose Modules are Deeper",
|
|
27
|
+
"edition": "2nd edition",
|
|
28
|
+
"source_url": "https://web.stanford.edu/~ouster/cgi-bin/book.php",
|
|
29
|
+
"verification_basis": "author_edition_notes",
|
|
30
|
+
"verification_status": "verified_primary",
|
|
31
|
+
"verified_on": "2026-11-12",
|
|
32
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "martin-clean-architecture",
|
|
38
|
+
"source_id": "B09",
|
|
39
|
+
"title": "Clean Architecture",
|
|
40
|
+
"notes_path": "docs/books/martin-clean-architecture.md",
|
|
41
|
+
"notes_sha256": "abfae61178c5fe0f9c308d740d574c345c91f575e5ca3cf06ab91a32d6191b8b",
|
|
42
|
+
"primary_url": "https://www.oreilly.com/library/view/clean-architecture-a/9780134494272/",
|
|
43
|
+
"notes_primary_url": "https://www.pearson.com/en-us/subject-catalog/p/clean-architecture-a-craftsmans-guide-to-software-structure-and-design/P200000009528/9780134494166",
|
|
44
|
+
"full_book_reviewed": false,
|
|
45
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
46
|
+
"edition": "1st edition",
|
|
47
|
+
"authors": "Robert C. Martin",
|
|
48
|
+
"review_summary": "Stable policy should be protected from frequently changing delivery mechanisms. Review dependency direction and replacement costs before adding another abstraction.",
|
|
49
|
+
"review_contribution": "Provides dependency-direction and boundary design context.",
|
|
50
|
+
"website_path": "/books/martin-clean-architecture/",
|
|
51
|
+
"reading_references": [
|
|
52
|
+
{
|
|
53
|
+
"kind": "chapter",
|
|
54
|
+
"number": "11",
|
|
55
|
+
"title": "DIP: The Dependency Inversion Principle",
|
|
56
|
+
"edition": "1st edition",
|
|
57
|
+
"source_url": "https://www.oreilly.com/library/view/clean-architecture-a/9780134494272/",
|
|
58
|
+
"verification_basis": "publisher_toc",
|
|
59
|
+
"verification_status": "verified_primary",
|
|
60
|
+
"verified_on": "2026-11-12",
|
|
61
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"kind": "chapter",
|
|
65
|
+
"number": "17",
|
|
66
|
+
"title": "Boundaries: Drawing Lines",
|
|
67
|
+
"edition": "1st edition",
|
|
68
|
+
"source_url": "https://www.oreilly.com/library/view/clean-architecture-a/9780134494272/",
|
|
69
|
+
"verification_basis": "publisher_toc",
|
|
70
|
+
"verification_status": "verified_primary",
|
|
71
|
+
"verified_on": "2026-11-12",
|
|
72
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "fowler-patterns-of-enterprise-application-architecture",
|
|
78
|
+
"source_id": "B14",
|
|
79
|
+
"title": "Patterns of Enterprise Application Architecture",
|
|
80
|
+
"notes_path": "docs/books/fowler-patterns-of-enterprise-application-architecture.md",
|
|
81
|
+
"notes_sha256": "7afcccc1767ffb88f64e8d1dc0dcd16ae6236bd7d8b7321522373bba6f755ffb",
|
|
82
|
+
"primary_url": "https://martinfowler.com/books/eaa.html",
|
|
83
|
+
"notes_primary_url": "https://www.martinfowler.com/books/eaa.html",
|
|
84
|
+
"full_book_reviewed": false,
|
|
85
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
86
|
+
"edition": "1st edition",
|
|
87
|
+
"authors": "Martin Fowler",
|
|
88
|
+
"review_summary": "Enterprise patterns offer choices for organizing business rules and distribution. Select the pattern whose operational and testing costs fit the actual product.",
|
|
89
|
+
"review_contribution": "Provides alternatives for domain logic and distribution rather than a mandatory enterprise template.",
|
|
90
|
+
"website_path": "/books/fowler-patterns-of-enterprise-application-architecture/",
|
|
91
|
+
"reading_references": [
|
|
92
|
+
{
|
|
93
|
+
"kind": "chapter",
|
|
94
|
+
"number": "2",
|
|
95
|
+
"title": "Organizing Domain Logic",
|
|
96
|
+
"edition": "1st edition",
|
|
97
|
+
"source_url": "https://martinfowler.com/books/eaa.html",
|
|
98
|
+
"verification_basis": "publisher_toc",
|
|
99
|
+
"verification_status": "verified_primary",
|
|
100
|
+
"verified_on": "2026-11-12",
|
|
101
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"kind": "chapter",
|
|
105
|
+
"number": "7",
|
|
106
|
+
"title": "Distribution Strategies",
|
|
107
|
+
"edition": "1st edition",
|
|
108
|
+
"source_url": "https://martinfowler.com/books/eaa.html",
|
|
109
|
+
"verification_basis": "publisher_toc",
|
|
110
|
+
"verification_status": "verified_primary",
|
|
111
|
+
"verified_on": "2026-11-12",
|
|
112
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "fowler-refactoring",
|
|
118
|
+
"source_id": "B16",
|
|
119
|
+
"title": "Refactoring, 2nd edition",
|
|
120
|
+
"notes_path": "docs/books/fowler-refactoring.md",
|
|
121
|
+
"notes_sha256": "46165fc65ad7ef3e0ad210790f82fcd1e1d1e66e72fa18bbccd5e7e6997fc9a5",
|
|
122
|
+
"primary_url": "https://refactoring.com/catalog/",
|
|
123
|
+
"notes_primary_url": "https://refactoring.com/catalog/",
|
|
124
|
+
"full_book_reviewed": false,
|
|
125
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
126
|
+
"edition": "2nd edition",
|
|
127
|
+
"authors": "Martin Fowler",
|
|
128
|
+
"review_summary": "Make structural changes in small steps while observing behavior. Tests should protect the contract being preserved before new behavior is introduced.",
|
|
129
|
+
"review_contribution": "Connects small structural changes with behavior-preserving tests.",
|
|
130
|
+
"website_path": "/books/fowler-refactoring/",
|
|
131
|
+
"reading_references": [
|
|
132
|
+
{
|
|
133
|
+
"kind": "chapter",
|
|
134
|
+
"number": "2",
|
|
135
|
+
"title": "Principles in Refactoring",
|
|
136
|
+
"edition": "2nd edition",
|
|
137
|
+
"source_url": "https://refactoring.com/catalog/",
|
|
138
|
+
"verification_basis": "publisher_toc",
|
|
139
|
+
"verification_status": "verified_primary",
|
|
140
|
+
"verified_on": "2026-11-12",
|
|
141
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"kind": "chapter",
|
|
145
|
+
"number": "4",
|
|
146
|
+
"title": "Building Tests",
|
|
147
|
+
"edition": "2nd edition",
|
|
148
|
+
"source_url": "https://refactoring.com/catalog/",
|
|
149
|
+
"verification_basis": "publisher_toc",
|
|
150
|
+
"verification_status": "verified_primary",
|
|
151
|
+
"verified_on": "2026-11-12",
|
|
152
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "nygard-release-it",
|
|
158
|
+
"source_id": "B12",
|
|
159
|
+
"title": "Release It!, 2nd edition",
|
|
160
|
+
"notes_path": "docs/books/nygard-release-it.md",
|
|
161
|
+
"notes_sha256": "0bbea4a85816090bffaabdb6c2f56db002ffb38899a03f5c9cbb90a8dfa0f384",
|
|
162
|
+
"primary_url": "https://www.pragmatic.org/titles/mnee2/release-it-second-edition/",
|
|
163
|
+
"notes_primary_url": "https://pragprog.com/titles/mnee2/release-it-second-edition/",
|
|
164
|
+
"full_book_reviewed": false,
|
|
165
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
166
|
+
"edition": "2nd edition",
|
|
167
|
+
"authors": "Michael T. Nygard",
|
|
168
|
+
"review_summary": "A dependency failure can exhaust resources far beyond the original fault. Review time budgets, bounded work and recovery paths with realistic failure scenarios.",
|
|
169
|
+
"review_contribution": "Frames cascading-failure questions and operational failure scenarios.",
|
|
170
|
+
"website_path": "/books/nygard-release-it/",
|
|
171
|
+
"reading_references": [
|
|
172
|
+
{
|
|
173
|
+
"kind": "chapter",
|
|
174
|
+
"number": "4",
|
|
175
|
+
"title": "Stability Antipatterns",
|
|
176
|
+
"edition": "2nd edition",
|
|
177
|
+
"source_url": "https://www.pragmatic.org/titles/mnee2/release-it-second-edition/",
|
|
178
|
+
"verification_basis": "publisher_toc",
|
|
179
|
+
"verification_status": "verified_primary",
|
|
180
|
+
"verified_on": "2026-11-12",
|
|
181
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "kleppmann-designing-data-intensive-applications",
|
|
187
|
+
"source_id": "B04",
|
|
188
|
+
"title": "Designing Data-Intensive Applications",
|
|
189
|
+
"notes_path": "docs/books/kleppmann-designing-data-intensive-applications.md",
|
|
190
|
+
"notes_sha256": "a1aeda2366f207e8cb698c662668e3448ec55e63c6218e9c90e410d4a3f79248",
|
|
191
|
+
"primary_url": "https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/",
|
|
192
|
+
"notes_primary_url": "https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/ch04.html",
|
|
193
|
+
"full_book_reviewed": false,
|
|
194
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
195
|
+
"edition": "1st edition (2017)",
|
|
196
|
+
"authors": "Martin Kleppmann",
|
|
197
|
+
"review_summary": "Reliability, growth and maintainability involve different constraints. For a distributed operation, describe what callers can know after a timeout before choosing retry behavior.",
|
|
198
|
+
"review_contribution": "Adds data-system trade-off context; source inspection cannot establish runtime consistency guarantees.",
|
|
199
|
+
"website_path": "/books/kleppmann-designing-data-intensive-applications/",
|
|
200
|
+
"reading_references": [
|
|
201
|
+
{
|
|
202
|
+
"kind": "chapter",
|
|
203
|
+
"number": "1",
|
|
204
|
+
"title": "Reliable, Scalable, and Maintainable Applications",
|
|
205
|
+
"edition": "1st edition (2017)",
|
|
206
|
+
"source_url": "https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/",
|
|
207
|
+
"verification_basis": "publisher_toc",
|
|
208
|
+
"verification_status": "verified_primary",
|
|
209
|
+
"verified_on": "2026-11-12",
|
|
210
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "howard-leblanc-writing-secure-code",
|
|
216
|
+
"source_id": "B17",
|
|
217
|
+
"title": "Writing Secure Code, 2nd edition",
|
|
218
|
+
"notes_path": "docs/books/howard-leblanc-writing-secure-code.md",
|
|
219
|
+
"notes_sha256": "79929f53b479cd5c12ed2e4f59129463e9e2d9f8bde9207191b9a95d04ff27d9",
|
|
220
|
+
"primary_url": "https://www.informit.com/store/writing-secure-code-9780735617223",
|
|
221
|
+
"notes_primary_url": "https://www.informit.com/store/writing-secure-code-9780735617223",
|
|
222
|
+
"full_book_reviewed": false,
|
|
223
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
224
|
+
"edition": "2nd edition",
|
|
225
|
+
"authors": "Michael Howard and David LeBlanc",
|
|
226
|
+
"review_summary": "Identify hostile inputs and the authority required for each action. Privilege reduction and explicit validation should be assessed at the receiving boundary.",
|
|
227
|
+
"review_contribution": "Provides secure construction and least-privilege context; historical platform examples need current API guidance.",
|
|
228
|
+
"website_path": "/books/howard-leblanc-writing-secure-code/",
|
|
229
|
+
"reading_references": [
|
|
230
|
+
{
|
|
231
|
+
"kind": "chapter",
|
|
232
|
+
"number": "4",
|
|
233
|
+
"title": "Threat Modeling",
|
|
234
|
+
"edition": "2nd edition",
|
|
235
|
+
"source_url": "https://www.oreilly.com/library/view/writing-secure-code/0735617228/",
|
|
236
|
+
"verification_basis": "publisher_toc",
|
|
237
|
+
"verification_status": "verified_primary",
|
|
238
|
+
"verified_on": "2026-11-12",
|
|
239
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"kind": "chapter",
|
|
243
|
+
"number": "7",
|
|
244
|
+
"title": "Running with Least Privilege",
|
|
245
|
+
"edition": "2nd edition",
|
|
246
|
+
"source_url": "https://www.oreilly.com/library/view/writing-secure-code/0735617228/",
|
|
247
|
+
"verification_basis": "publisher_toc",
|
|
248
|
+
"verification_status": "verified_primary",
|
|
249
|
+
"verified_on": "2026-11-12",
|
|
250
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "shostack-threat-modeling",
|
|
256
|
+
"source_id": "B18",
|
|
257
|
+
"title": "Threat Modeling: Designing for Security",
|
|
258
|
+
"notes_path": "docs/books/shostack-threat-modeling.md",
|
|
259
|
+
"notes_sha256": "38e735a9421690b18f4356cdff61f9a36b954fc934f292c339bddd7aeaec7485",
|
|
260
|
+
"primary_url": "https://github.com/adamshostack/4QuestionFrame",
|
|
261
|
+
"notes_primary_url": "https://github.com/adamshostack/4QuestionFrame",
|
|
262
|
+
"full_book_reviewed": false,
|
|
263
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
264
|
+
"edition": "1st edition (2014)",
|
|
265
|
+
"authors": "Adam Shostack",
|
|
266
|
+
"review_summary": "Model assets, boundaries and possible misuse before selecting defenses. A threat list becomes useful when each material threat has a mitigation and a way to check it.",
|
|
267
|
+
"review_contribution": "Provides STRIDE and threat-to-validation structure; an AQAF question is not a completed threat model.",
|
|
268
|
+
"website_path": "/books/shostack-threat-modeling/",
|
|
269
|
+
"reading_references": [
|
|
270
|
+
{
|
|
271
|
+
"kind": "chapter",
|
|
272
|
+
"number": "3",
|
|
273
|
+
"title": "STRIDE",
|
|
274
|
+
"edition": "1st edition (2014)",
|
|
275
|
+
"source_url": "https://bcs.wiley.com/he-bcs/Books?action=contents&bcsId=9137&itemId=1118809998",
|
|
276
|
+
"verification_basis": "publisher_toc",
|
|
277
|
+
"verification_status": "verified_primary",
|
|
278
|
+
"verified_on": "2026-11-12",
|
|
279
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"kind": "chapter",
|
|
283
|
+
"number": "10",
|
|
284
|
+
"title": "Validating That Threats Are Addressed",
|
|
285
|
+
"edition": "1st edition (2014)",
|
|
286
|
+
"source_url": "https://bcs.wiley.com/he-bcs/Books?action=contents&bcsId=9137&itemId=1118809998",
|
|
287
|
+
"verification_basis": "publisher_toc",
|
|
288
|
+
"verification_status": "verified_primary",
|
|
289
|
+
"verified_on": "2026-11-12",
|
|
290
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
291
|
+
}
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"id": "meszaros-xunit-test-patterns",
|
|
296
|
+
"source_id": "B19",
|
|
297
|
+
"title": "xUnit Test Patterns",
|
|
298
|
+
"notes_path": "docs/books/meszaros-xunit-test-patterns.md",
|
|
299
|
+
"notes_sha256": "688bbfb7113f9de932ac78d705cf59517d36400ef5c5a600a30373f900a9069b",
|
|
300
|
+
"primary_url": "https://www.informit.com/store/xunit-test-patterns-refactoring-test-code-9780321504807",
|
|
301
|
+
"notes_primary_url": "https://www.informit.com/store/xunit-test-patterns-refactoring-test-code-9780321504807",
|
|
302
|
+
"full_book_reviewed": false,
|
|
303
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
304
|
+
"edition": "1st edition",
|
|
305
|
+
"authors": "Gerard Meszaros",
|
|
306
|
+
"review_summary": "Tests need a dependable way to determine the result. Test doubles help isolate a concern, but their expectations must correspond to a meaningful contract.",
|
|
307
|
+
"review_contribution": "Distinguishes result verification and test-double use from implementation-coupled assertions.",
|
|
308
|
+
"website_path": "/books/meszaros-xunit-test-patterns/",
|
|
309
|
+
"reading_references": [
|
|
310
|
+
{
|
|
311
|
+
"kind": "chapter",
|
|
312
|
+
"number": "10",
|
|
313
|
+
"title": "Result Verification",
|
|
314
|
+
"edition": "1st edition",
|
|
315
|
+
"source_url": "https://www.informit.com/store/xunit-test-patterns-refactoring-test-code-9780321504807",
|
|
316
|
+
"verification_basis": "publisher_toc",
|
|
317
|
+
"verification_status": "verified_primary",
|
|
318
|
+
"verified_on": "2026-11-12",
|
|
319
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"kind": "chapter",
|
|
323
|
+
"number": "11",
|
|
324
|
+
"title": "Using Test Doubles",
|
|
325
|
+
"edition": "1st edition",
|
|
326
|
+
"source_url": "https://www.informit.com/store/xunit-test-patterns-refactoring-test-code-9780321504807",
|
|
327
|
+
"verification_basis": "publisher_toc",
|
|
328
|
+
"verification_status": "verified_primary",
|
|
329
|
+
"verified_on": "2026-11-12",
|
|
330
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
331
|
+
}
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"id": "freeman-pryce-growing-object-oriented-software",
|
|
336
|
+
"source_id": "B20",
|
|
337
|
+
"title": "Growing Object-Oriented Software, Guided by Tests",
|
|
338
|
+
"notes_path": "docs/books/freeman-pryce-growing-object-oriented-software.md",
|
|
339
|
+
"notes_sha256": "2d28cb2937e00ff58a048f4c876a1667d9249f0c4c0961637f4478aee0112e90",
|
|
340
|
+
"primary_url": "https://www.pearson.com/en-us/subject-catalog/p/growing-object-oriented-software-guided-by-tests/P200000009298/",
|
|
341
|
+
"notes_primary_url": "https://www.pearson.com/en-us/subject-catalog/p/growing-object-oriented-software-guided-by-tests/P200000009298/",
|
|
342
|
+
"full_book_reviewed": false,
|
|
343
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
344
|
+
"edition": "1st edition",
|
|
345
|
+
"authors": "Steve Freeman and Nat Pryce",
|
|
346
|
+
"review_summary": "Start with a thin end-to-end path, then grow behavior with feedback. Isolated tests and collaboration tests answer different questions about a working system.",
|
|
347
|
+
"review_contribution": "Connects collaboration tests with an executable end-to-end delivery path.",
|
|
348
|
+
"website_path": "/books/freeman-pryce-growing-object-oriented-software/",
|
|
349
|
+
"reading_references": [
|
|
350
|
+
{
|
|
351
|
+
"kind": "chapter",
|
|
352
|
+
"number": "10",
|
|
353
|
+
"title": "The Walking Skeleton",
|
|
354
|
+
"edition": "1st edition",
|
|
355
|
+
"source_url": "https://www.pearson.com/en-us/subject-catalog/p/growing-object-oriented-software-guided-by-tests/P200000009298/",
|
|
356
|
+
"verification_basis": "publisher_toc",
|
|
357
|
+
"verification_status": "verified_primary",
|
|
358
|
+
"verified_on": "2026-11-12",
|
|
359
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"kind": "chapter",
|
|
363
|
+
"number": "19",
|
|
364
|
+
"title": "Handling Failure",
|
|
365
|
+
"edition": "1st edition",
|
|
366
|
+
"source_url": "https://www.pearson.com/en-us/subject-catalog/p/growing-object-oriented-software-guided-by-tests/P200000009298/",
|
|
367
|
+
"verification_basis": "publisher_toc",
|
|
368
|
+
"verification_status": "verified_primary",
|
|
369
|
+
"verified_on": "2026-11-12",
|
|
370
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"id": "khorikov-unit-testing",
|
|
376
|
+
"source_id": "B21",
|
|
377
|
+
"title": "Unit Testing Principles, Practices, and Patterns",
|
|
378
|
+
"notes_path": "docs/books/khorikov-unit-testing.md",
|
|
379
|
+
"notes_sha256": "d4c2c5c431c30bd5ea6fee60d2ca78caebcf540b6f310a56cdaf587d8b374278",
|
|
380
|
+
"primary_url": "https://www.simonandschuster.ca/books/Unit-Testing-Principles-Practices-and-Patterns/Vladimir-Khorikov/9781617296277",
|
|
381
|
+
"notes_primary_url": "https://www.simonandschuster.ca/books/Unit-Testing-Principles-Practices-and-Patterns/Vladimir-Khorikov/9781617296277",
|
|
382
|
+
"full_book_reviewed": false,
|
|
383
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
384
|
+
"edition": "1st edition",
|
|
385
|
+
"authors": "Vladimir Khorikov",
|
|
386
|
+
"review_summary": "A useful test catches important regressions while staying affordable to run and maintain. Evaluate brittleness as well as coverage when deciding what to keep.",
|
|
387
|
+
"review_contribution": "Supplies a test-value framework covering regression protection, refactoring resistance, feedback speed and maintenance.",
|
|
388
|
+
"website_path": "/books/khorikov-unit-testing/",
|
|
389
|
+
"reading_references": [
|
|
390
|
+
{
|
|
391
|
+
"kind": "chapter",
|
|
392
|
+
"number": "4",
|
|
393
|
+
"title": "The four pillars of a good unit test",
|
|
394
|
+
"edition": "1st edition",
|
|
395
|
+
"source_url": "https://livebook.manning.com/book/unit-testing/chapter-4/v-3",
|
|
396
|
+
"verification_basis": "publisher_chapter",
|
|
397
|
+
"verification_status": "verified_primary",
|
|
398
|
+
"verified_on": "2026-11-12",
|
|
399
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
400
|
+
}
|
|
401
|
+
]
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"id": "feathers-working-effectively-with-legacy-code",
|
|
405
|
+
"source_id": "B06",
|
|
406
|
+
"title": "Working Effectively with Legacy Code",
|
|
407
|
+
"notes_path": "docs/books/feathers-working-effectively-with-legacy-code.md",
|
|
408
|
+
"notes_sha256": "31729260a24d15aa022f299330f78b48620f8c85caa5c65c4318ce95b8e164c0",
|
|
409
|
+
"primary_url": "https://www.oreilly.com/library/view/working-effectively-with/0131177052/",
|
|
410
|
+
"notes_primary_url": "https://www.oreilly.com/library/view/working-effectively-with/0131177052/",
|
|
411
|
+
"full_book_reviewed": false,
|
|
412
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
413
|
+
"edition": "1st edition",
|
|
414
|
+
"authors": "Michael C. Feathers",
|
|
415
|
+
"review_summary": "A seam gives a reviewer a place to observe or replace behavior without a broad rewrite. First characterize uncertain behavior; then change structure deliberately.",
|
|
416
|
+
"review_contribution": "Helps find observation seams in code whose behavior is poorly understood.",
|
|
417
|
+
"website_path": "/books/feathers-working-effectively-with-legacy-code/",
|
|
418
|
+
"reading_references": [
|
|
419
|
+
{
|
|
420
|
+
"kind": "chapter",
|
|
421
|
+
"number": "4",
|
|
422
|
+
"title": "The Seam Model",
|
|
423
|
+
"edition": "1st edition",
|
|
424
|
+
"source_url": "https://www.oreilly.com/library/view/working-effectively-with/0131177052/",
|
|
425
|
+
"verification_basis": "publisher_toc",
|
|
426
|
+
"verification_status": "verified_primary",
|
|
427
|
+
"verified_on": "2026-11-12",
|
|
428
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"kind": "chapter",
|
|
432
|
+
"number": "25",
|
|
433
|
+
"title": "Dependency-Breaking Techniques",
|
|
434
|
+
"edition": "1st edition",
|
|
435
|
+
"source_url": "https://www.oreilly.com/library/view/working-effectively-with/0131177052/",
|
|
436
|
+
"verification_basis": "publisher_toc",
|
|
437
|
+
"verification_status": "verified_primary",
|
|
438
|
+
"verified_on": "2026-11-12",
|
|
439
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
440
|
+
}
|
|
441
|
+
]
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "beck-test-driven-development",
|
|
445
|
+
"source_id": "B22",
|
|
446
|
+
"title": "Test-Driven Development: By Example",
|
|
447
|
+
"notes_path": "docs/books/beck-test-driven-development.md",
|
|
448
|
+
"notes_sha256": "d9dbcaa5e0abe9053eb4413cff7880f55868b7d23fc00e2770111ac71913304a",
|
|
449
|
+
"primary_url": "https://oreilly.com/library/view/test-driven-development/0321146530",
|
|
450
|
+
"notes_primary_url": "https://oreilly.com/library/view/test-driven-development/0321146530",
|
|
451
|
+
"full_book_reviewed": false,
|
|
452
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
453
|
+
"edition": "1st edition",
|
|
454
|
+
"authors": "Kent Beck",
|
|
455
|
+
"review_summary": "Short feedback cycles keep a change understandable. Use an observable failing example and a small implementation step, then improve the structure with feedback.",
|
|
456
|
+
"review_contribution": "Supplies test-driven iteration context; characterization of existing behavior is a separate decision.",
|
|
457
|
+
"website_path": "/books/beck-test-driven-development/",
|
|
458
|
+
"reading_references": [
|
|
459
|
+
{
|
|
460
|
+
"kind": "chapter",
|
|
461
|
+
"number": "17",
|
|
462
|
+
"title": "Money Retrospective",
|
|
463
|
+
"edition": "1st edition",
|
|
464
|
+
"source_url": "https://oreilly.com/library/view/test-driven-development/0321146530",
|
|
465
|
+
"verification_basis": "publisher_toc",
|
|
466
|
+
"verification_status": "verified_primary",
|
|
467
|
+
"verified_on": "2026-11-12",
|
|
468
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"kind": "chapter",
|
|
472
|
+
"number": "22",
|
|
473
|
+
"title": "Dealing with Failure",
|
|
474
|
+
"edition": "1st edition",
|
|
475
|
+
"source_url": "https://oreilly.com/library/view/test-driven-development/0321146530",
|
|
476
|
+
"verification_basis": "publisher_toc",
|
|
477
|
+
"verification_status": "verified_primary",
|
|
478
|
+
"verified_on": "2026-11-12",
|
|
479
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
480
|
+
}
|
|
481
|
+
]
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"id": "crispin-gregory-agile-testing",
|
|
485
|
+
"source_id": "B23",
|
|
486
|
+
"title": "Agile Testing",
|
|
487
|
+
"notes_path": "docs/books/crispin-gregory-agile-testing.md",
|
|
488
|
+
"notes_sha256": "09a6c96897efac81a896f4cdf18319ae331037a794586b2cfb0d35625e6049da",
|
|
489
|
+
"primary_url": "https://www.informit.com/store/agile-testing-a-practical-guide-for-testers-and-agile-9780321606778",
|
|
490
|
+
"notes_primary_url": "https://www.informit.com/store/agile-testing-a-practical-guide-for-testers-and-agile-9780321606778",
|
|
491
|
+
"full_book_reviewed": false,
|
|
492
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
493
|
+
"edition": "1st edition (2009)",
|
|
494
|
+
"authors": "Lisa Crispin and Janet Gregory",
|
|
495
|
+
"review_summary": "Testing serves both development and product evaluation. Balance checks of implementation behavior with exploration of user outcomes and operational qualities.",
|
|
496
|
+
"review_contribution": "Uses the testing quadrants to broaden the evidence requested beyond unit-test counts.",
|
|
497
|
+
"website_path": "/books/crispin-gregory-agile-testing/",
|
|
498
|
+
"reading_references": [
|
|
499
|
+
{
|
|
500
|
+
"kind": "chapter",
|
|
501
|
+
"number": "6",
|
|
502
|
+
"title": "The Purpose of Testing",
|
|
503
|
+
"edition": "1st edition (2009)",
|
|
504
|
+
"source_url": "https://www.informit.com/store/agile-testing-a-practical-guide-for-testers-and-agile-9780321534460",
|
|
505
|
+
"verification_basis": "publisher_toc",
|
|
506
|
+
"verification_status": "verified_primary",
|
|
507
|
+
"verified_on": "2026-11-12",
|
|
508
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"kind": "chapter",
|
|
512
|
+
"number": "12",
|
|
513
|
+
"title": "Summary of Testing Quadrants",
|
|
514
|
+
"edition": "1st edition (2009)",
|
|
515
|
+
"source_url": "https://www.informit.com/store/agile-testing-a-practical-guide-for-testers-and-agile-9780321534460",
|
|
516
|
+
"verification_basis": "publisher_toc",
|
|
517
|
+
"verification_status": "verified_primary",
|
|
518
|
+
"verified_on": "2026-11-12",
|
|
519
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
520
|
+
}
|
|
521
|
+
]
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"id": "forshaw-windows-security-internals",
|
|
525
|
+
"source_id": "B24",
|
|
526
|
+
"title": "Windows Security Internals",
|
|
527
|
+
"notes_path": "docs/books/forshaw-windows-security-internals.md",
|
|
528
|
+
"notes_sha256": "2483589c5afaee7ed6d4ab79ccf93739d6a9d78079e79f803a0374b4033309cb",
|
|
529
|
+
"primary_url": "https://nostarch.com/windows-security-internals",
|
|
530
|
+
"notes_primary_url": "https://nostarch.com/windows-security-internals",
|
|
531
|
+
"full_book_reviewed": false,
|
|
532
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
533
|
+
"edition": "1st edition",
|
|
534
|
+
"authors": "James Forshaw",
|
|
535
|
+
"review_summary": "Windows access decisions depend on identities, tokens and object permissions. Review what the receiver checks instead of assuming a trusted caller makes an operation safe.",
|
|
536
|
+
"review_contribution": "Provides Windows authorization mechanics for a boundary review.",
|
|
537
|
+
"website_path": "/books/forshaw-windows-security-internals/",
|
|
538
|
+
"reading_references": [
|
|
539
|
+
{
|
|
540
|
+
"kind": "chapter",
|
|
541
|
+
"number": "5",
|
|
542
|
+
"title": "Security Descriptors",
|
|
543
|
+
"edition": "1st edition",
|
|
544
|
+
"source_url": "https://nostarch.com/windows-security-internals",
|
|
545
|
+
"verification_basis": "publisher_excerpt",
|
|
546
|
+
"verification_status": "verified_primary",
|
|
547
|
+
"verified_on": "2026-11-12",
|
|
548
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
549
|
+
}
|
|
550
|
+
]
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"id": "ristic-bulletproof-tls-and-pki",
|
|
554
|
+
"source_id": "B25",
|
|
555
|
+
"title": "Bulletproof TLS and PKI, 2nd edition",
|
|
556
|
+
"notes_path": "docs/books/ristic-bulletproof-tls-and-pki.md",
|
|
557
|
+
"notes_sha256": "c7be3b1c4a5ebf98758754b9f8c35efd0f61cb743e5be95b0b1f9e649ea1c814",
|
|
558
|
+
"primary_url": "https://www.feistyduck.com/books/bulletproof-tls-and-pki/",
|
|
559
|
+
"notes_primary_url": "https://www.feistyduck.com/books/bulletproof-tls-and-pki/",
|
|
560
|
+
"full_book_reviewed": false,
|
|
561
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
562
|
+
"edition": "2nd edition",
|
|
563
|
+
"authors": "Ivan Ristić",
|
|
564
|
+
"review_summary": "Encrypted transport still needs a policy for authenticating the peer. Certificate validation, trust configuration and application authorization require separate evidence.",
|
|
565
|
+
"review_contribution": "Provides transport and PKI context; deployment configuration must be checked against current platform guidance.",
|
|
566
|
+
"website_path": "/books/ristic-bulletproof-tls-and-pki/",
|
|
567
|
+
"reading_references": [
|
|
568
|
+
{
|
|
569
|
+
"kind": "chapter",
|
|
570
|
+
"number": "2",
|
|
571
|
+
"title": "TLS 1.3",
|
|
572
|
+
"edition": "2nd edition",
|
|
573
|
+
"source_url": "https://www.feistyduck.com/books/bulletproof-tls-and-pki/",
|
|
574
|
+
"verification_basis": "author_toc",
|
|
575
|
+
"verification_status": "verified_primary",
|
|
576
|
+
"verified_on": "2026-11-12",
|
|
577
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"kind": "chapter",
|
|
581
|
+
"number": "4",
|
|
582
|
+
"title": "Public Key Infrastructure",
|
|
583
|
+
"edition": "2nd edition",
|
|
584
|
+
"source_url": "https://www.feistyduck.com/books/bulletproof-tls-and-pki/",
|
|
585
|
+
"verification_basis": "author_toc",
|
|
586
|
+
"verification_status": "verified_primary",
|
|
587
|
+
"verified_on": "2026-11-12",
|
|
588
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
589
|
+
}
|
|
590
|
+
]
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"id": "aumasson-serious-cryptography",
|
|
594
|
+
"source_id": "B26",
|
|
595
|
+
"title": "Serious Cryptography, 2nd edition",
|
|
596
|
+
"notes_path": "docs/books/aumasson-serious-cryptography.md",
|
|
597
|
+
"notes_sha256": "ea363ce46548d3f0676480719e68fbc171be314ff072e3b557b1f443d9142223",
|
|
598
|
+
"primary_url": "https://nostarch.com/seriouscrypto",
|
|
599
|
+
"notes_primary_url": "https://nostarch.com/seriouscrypto",
|
|
600
|
+
"full_book_reviewed": false,
|
|
601
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
602
|
+
"edition": "2nd edition",
|
|
603
|
+
"authors": "Jean-Philippe Aumasson",
|
|
604
|
+
"review_summary": "A cryptographic primitive solves a specific problem under assumptions. Review key ownership, randomness and authenticated context instead of treating encryption as an authorization decision.",
|
|
605
|
+
"review_contribution": "Separates cryptographic guarantees from identity and authority; no recommendation to invent cryptographic protocols.",
|
|
606
|
+
"website_path": "/books/aumasson-serious-cryptography/",
|
|
607
|
+
"reading_references": [
|
|
608
|
+
{
|
|
609
|
+
"kind": "chapter",
|
|
610
|
+
"number": "2",
|
|
611
|
+
"title": "Randomness",
|
|
612
|
+
"edition": "2nd edition",
|
|
613
|
+
"source_url": "https://nostarch.com/serious-cryptography-2nd-edition",
|
|
614
|
+
"verification_basis": "publisher_toc",
|
|
615
|
+
"verification_status": "verified_primary",
|
|
616
|
+
"verified_on": "2026-11-12",
|
|
617
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"kind": "chapter",
|
|
621
|
+
"number": "8",
|
|
622
|
+
"title": "Authenticated Encryption",
|
|
623
|
+
"edition": "2nd edition",
|
|
624
|
+
"source_url": "https://nostarch.com/serious-cryptography-2nd-edition",
|
|
625
|
+
"verification_basis": "publisher_toc",
|
|
626
|
+
"verification_status": "verified_primary",
|
|
627
|
+
"verified_on": "2026-11-12",
|
|
628
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
629
|
+
}
|
|
630
|
+
]
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"id": "anderson-security-engineering",
|
|
634
|
+
"source_id": "B27",
|
|
635
|
+
"title": "Security Engineering, 3rd edition",
|
|
636
|
+
"notes_path": "docs/books/anderson-security-engineering.md",
|
|
637
|
+
"notes_sha256": "70f391ec662796e968111aa045e3f327f14133d89cdac75ed944f7da2c4fec71",
|
|
638
|
+
"primary_url": "https://www.cl.cam.ac.uk/~rja14/book.html",
|
|
639
|
+
"notes_primary_url": "https://www.cl.cam.ac.uk/~rja14/book.html",
|
|
640
|
+
"full_book_reviewed": false,
|
|
641
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
642
|
+
"edition": "3rd edition",
|
|
643
|
+
"authors": "Ross Anderson",
|
|
644
|
+
"review_summary": "Security depends on how mechanisms, incentives and operating practices interact. Check authority and development assurance in the actual system context.",
|
|
645
|
+
"review_contribution": "Adds system-wide access-control and assurance context beyond individual cryptographic mechanisms.",
|
|
646
|
+
"website_path": "/books/anderson-security-engineering/",
|
|
647
|
+
"reading_references": [
|
|
648
|
+
{
|
|
649
|
+
"kind": "chapter",
|
|
650
|
+
"number": "6",
|
|
651
|
+
"title": "Access Control",
|
|
652
|
+
"edition": "3rd edition",
|
|
653
|
+
"source_url": "https://www.cl.cam.ac.uk/archive/rja14/book.html",
|
|
654
|
+
"verification_basis": "author_toc",
|
|
655
|
+
"verification_status": "verified_primary",
|
|
656
|
+
"verified_on": "2026-11-12",
|
|
657
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"kind": "chapter",
|
|
661
|
+
"number": "27",
|
|
662
|
+
"title": "Secure Systems Development",
|
|
663
|
+
"edition": "3rd edition",
|
|
664
|
+
"source_url": "https://www.cl.cam.ac.uk/archive/rja14/book.html",
|
|
665
|
+
"verification_basis": "author_toc",
|
|
666
|
+
"verification_status": "verified_primary",
|
|
667
|
+
"verified_on": "2026-11-12",
|
|
668
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
669
|
+
}
|
|
670
|
+
]
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"id": "humble-farley-continuous-delivery",
|
|
674
|
+
"source_id": "B28",
|
|
675
|
+
"title": "Continuous Delivery",
|
|
676
|
+
"notes_path": "docs/books/humble-farley-continuous-delivery.md",
|
|
677
|
+
"notes_sha256": "1586abcc08916a70838c4901989a837c9a2ff435f1404588ab710d57b67ad316",
|
|
678
|
+
"primary_url": "https://www.pearson.com/en-us/subject-catalog/p/continuous-delivery-reliable-software-releases-through-build-test-and-deployment-automation/P200000009113/9780321601919",
|
|
679
|
+
"notes_primary_url": "https://www.pearson.com/en-us/subject-catalog/p/continuous-delivery-reliable-software-releases-through-build-test-and-deployment-automation/P200000009113/9780321601919",
|
|
680
|
+
"full_book_reviewed": false,
|
|
681
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
682
|
+
"edition": "1st edition",
|
|
683
|
+
"authors": "Jez Humble and David Farley",
|
|
684
|
+
"review_summary": "A release should identify what was tested and what is being promoted. Recovery planning must cover data and compatibility as well as replacing an executable.",
|
|
685
|
+
"review_contribution": "Provides delivery-pipeline and release-rehearsal context.",
|
|
686
|
+
"website_path": "/books/humble-farley-continuous-delivery/",
|
|
687
|
+
"reading_references": [
|
|
688
|
+
{
|
|
689
|
+
"kind": "chapter",
|
|
690
|
+
"number": "5",
|
|
691
|
+
"title": "Anatomy of the Deployment Pipeline",
|
|
692
|
+
"edition": "1st edition",
|
|
693
|
+
"source_url": "https://www.pearson.com/en-us/subject-catalog/p/continuous-delivery-reliable-software-releases-through-build-test-and-deployment-automation/P200000009113/9780321601919",
|
|
694
|
+
"verification_basis": "publisher_toc",
|
|
695
|
+
"verification_status": "verified_primary",
|
|
696
|
+
"verified_on": "2026-11-12",
|
|
697
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"kind": "chapter",
|
|
701
|
+
"number": "10",
|
|
702
|
+
"title": "Deploying and Releasing Applications",
|
|
703
|
+
"edition": "1st edition",
|
|
704
|
+
"source_url": "https://www.pearson.com/en-us/subject-catalog/p/continuous-delivery-reliable-software-releases-through-build-test-and-deployment-automation/P200000009113/9780321601919",
|
|
705
|
+
"verification_basis": "publisher_toc",
|
|
706
|
+
"verification_status": "verified_primary",
|
|
707
|
+
"verified_on": "2026-11-12",
|
|
708
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
709
|
+
}
|
|
710
|
+
]
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"id": "cleary-concurrency-in-csharp-cookbook",
|
|
714
|
+
"source_id": "B29",
|
|
715
|
+
"title": "Concurrency in C# Cookbook, 2nd edition",
|
|
716
|
+
"notes_path": "docs/books/cleary-concurrency-in-csharp-cookbook.md",
|
|
717
|
+
"notes_sha256": "c3b84b23693ce8f34ac479c5803ece3c79140860ec5910e20492ab48c21c3c0d",
|
|
718
|
+
"primary_url": "https://stephencleary.com/book/",
|
|
719
|
+
"notes_primary_url": "https://stephencleary.com/book/",
|
|
720
|
+
"full_book_reviewed": false,
|
|
721
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
722
|
+
"edition": "2nd edition",
|
|
723
|
+
"authors": "Stephen Cleary",
|
|
724
|
+
"review_summary": "Asynchronous work needs a lifetime, a cancellation path and an observable completion result. A returned task should represent the work the caller is responsible for.",
|
|
725
|
+
"review_contribution": "Provides asynchronous ownership and testing context; unnumbered publisher headings are retained without guessed chapter numbers.",
|
|
726
|
+
"website_path": "/books/cleary-concurrency-in-csharp-cookbook/",
|
|
727
|
+
"reading_references": [
|
|
728
|
+
{
|
|
729
|
+
"kind": "chapter",
|
|
730
|
+
"number": null,
|
|
731
|
+
"title": "Async Basics",
|
|
732
|
+
"edition": "2nd edition",
|
|
733
|
+
"source_url": "https://stephencleary.com/book/",
|
|
734
|
+
"verification_basis": "publisher_toc",
|
|
735
|
+
"verification_status": "verified_primary",
|
|
736
|
+
"verified_on": "2026-11-12",
|
|
737
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"kind": "chapter",
|
|
741
|
+
"number": null,
|
|
742
|
+
"title": "Testing",
|
|
743
|
+
"edition": "2nd edition",
|
|
744
|
+
"source_url": "https://stephencleary.com/book/",
|
|
745
|
+
"verification_basis": "publisher_toc",
|
|
746
|
+
"verification_status": "verified_primary",
|
|
747
|
+
"verified_on": "2026-11-12",
|
|
748
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
749
|
+
}
|
|
750
|
+
]
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"id": "hohpe-woolf-enterprise-integration-patterns",
|
|
754
|
+
"source_id": "B30",
|
|
755
|
+
"title": "Enterprise Integration Patterns",
|
|
756
|
+
"notes_path": "docs/books/hohpe-woolf-enterprise-integration-patterns.md",
|
|
757
|
+
"notes_sha256": "8ecfc86a6c9bc9869fa31a64987054df9148bd4dda5a5300a025161e80b0f233",
|
|
758
|
+
"primary_url": "https://www.enterpriseintegrationpatterns.com/toc.html",
|
|
759
|
+
"notes_primary_url": "https://www.enterpriseintegrationpatterns.com/toc.html",
|
|
760
|
+
"full_book_reviewed": false,
|
|
761
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
762
|
+
"edition": "1st edition",
|
|
763
|
+
"authors": "Gregor Hohpe and Bobby Woolf",
|
|
764
|
+
"review_summary": "Messages need deliberate delivery and failure handling. Define invalid-message behavior and recovery ownership rather than assuming a queue guarantees a business outcome.",
|
|
765
|
+
"review_contribution": "Provides messaging patterns; cited pattern names are not represented as numbered chapters.",
|
|
766
|
+
"website_path": "/books/hohpe-woolf-enterprise-integration-patterns/",
|
|
767
|
+
"reading_references": [
|
|
768
|
+
{
|
|
769
|
+
"kind": "pattern",
|
|
770
|
+
"number": null,
|
|
771
|
+
"title": "Message Channel",
|
|
772
|
+
"edition": "1st edition",
|
|
773
|
+
"source_url": "https://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html",
|
|
774
|
+
"verification_basis": "author_pattern_catalogue",
|
|
775
|
+
"verification_status": "verified_primary",
|
|
776
|
+
"verified_on": "2026-11-12",
|
|
777
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"kind": "pattern",
|
|
781
|
+
"number": null,
|
|
782
|
+
"title": "Dead Letter Channel",
|
|
783
|
+
"edition": "1st edition",
|
|
784
|
+
"source_url": "https://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html",
|
|
785
|
+
"verification_basis": "author_pattern_catalogue",
|
|
786
|
+
"verification_status": "verified_primary",
|
|
787
|
+
"verified_on": "2026-11-12",
|
|
788
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
789
|
+
}
|
|
790
|
+
]
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"id": "evans-domain-driven-design",
|
|
794
|
+
"source_id": "B05",
|
|
795
|
+
"title": "Domain-Driven Design",
|
|
796
|
+
"notes_path": "docs/books/evans-domain-driven-design.md",
|
|
797
|
+
"notes_sha256": "8ccd89655b55a7b130a78791c155fef7eeecf0120317440c921116b8c7ef21e7",
|
|
798
|
+
"primary_url": "https://www.pearson.de/domain-driven-design-tackling-complexity-in-the-heart-of-software-9780321125217",
|
|
799
|
+
"notes_primary_url": "https://www.pearson.com/en-gb/subject-catalog/p/domain-driven-design-tackling-complexity-in-the-heart-of-software/P200000009375",
|
|
800
|
+
"full_book_reviewed": false,
|
|
801
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
802
|
+
"edition": "1st edition",
|
|
803
|
+
"authors": "Eric Evans",
|
|
804
|
+
"review_summary": "A domain model should make business concepts understandable and consistent within a boundary. Different parts of a system may legitimately use different models.",
|
|
805
|
+
"review_contribution": "Provides model-boundary context when domain complexity justifies it.",
|
|
806
|
+
"website_path": "/books/evans-domain-driven-design/",
|
|
807
|
+
"reading_references": [
|
|
808
|
+
{
|
|
809
|
+
"kind": "chapter",
|
|
810
|
+
"number": "4",
|
|
811
|
+
"title": "Isolating the Domain",
|
|
812
|
+
"edition": "1st edition",
|
|
813
|
+
"source_url": "https://www.pearson.de/domain-driven-design-tackling-complexity-in-the-heart-of-software-9780321125217",
|
|
814
|
+
"verification_basis": "publisher_toc",
|
|
815
|
+
"verification_status": "verified_primary",
|
|
816
|
+
"verified_on": "2026-11-12",
|
|
817
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"kind": "chapter",
|
|
821
|
+
"number": "14",
|
|
822
|
+
"title": "Maintaining Model Integrity",
|
|
823
|
+
"edition": "1st edition",
|
|
824
|
+
"source_url": "https://www.pearson.de/domain-driven-design-tackling-complexity-in-the-heart-of-software-9780321125217",
|
|
825
|
+
"verification_basis": "publisher_toc",
|
|
826
|
+
"verification_status": "verified_primary",
|
|
827
|
+
"verified_on": "2026-11-12",
|
|
828
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
829
|
+
}
|
|
830
|
+
]
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
"id": "beyer-site-reliability-engineering",
|
|
834
|
+
"source_id": "B31",
|
|
835
|
+
"title": "Site Reliability Engineering",
|
|
836
|
+
"notes_path": "docs/books/beyer-site-reliability-engineering.md",
|
|
837
|
+
"notes_sha256": "c7f35197008bf0904a7399326c0e945880a52c180940db7da1aa85a3e9d079b1",
|
|
838
|
+
"primary_url": "https://sre.google/books/",
|
|
839
|
+
"notes_primary_url": "https://sre.google/books/",
|
|
840
|
+
"full_book_reviewed": false,
|
|
841
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
842
|
+
"edition": "1st edition",
|
|
843
|
+
"authors": "Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy (editors)",
|
|
844
|
+
"review_summary": "Operational evidence should describe what a user experiences. Define a useful service objective and connect alerts to a response that someone can perform.",
|
|
845
|
+
"review_contribution": "Provides service objectives and monitoring context; source code alone cannot demonstrate operational reliability.",
|
|
846
|
+
"website_path": "/books/beyer-site-reliability-engineering/",
|
|
847
|
+
"reading_references": [
|
|
848
|
+
{
|
|
849
|
+
"kind": "chapter",
|
|
850
|
+
"number": "4",
|
|
851
|
+
"title": "Service Level Objectives",
|
|
852
|
+
"edition": "1st edition",
|
|
853
|
+
"source_url": "https://sre.google/sre-book/table-of-contents/",
|
|
854
|
+
"verification_basis": "publisher_toc",
|
|
855
|
+
"verification_status": "verified_primary",
|
|
856
|
+
"verified_on": "2026-11-12",
|
|
857
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"kind": "chapter",
|
|
861
|
+
"number": "6",
|
|
862
|
+
"title": "Monitoring Distributed Systems",
|
|
863
|
+
"edition": "1st edition",
|
|
864
|
+
"source_url": "https://sre.google/sre-book/table-of-contents/",
|
|
865
|
+
"verification_basis": "publisher_toc",
|
|
866
|
+
"verification_status": "verified_primary",
|
|
867
|
+
"verified_on": "2026-11-12",
|
|
868
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
869
|
+
}
|
|
870
|
+
]
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"id": "norman-design-of-everyday-things",
|
|
874
|
+
"source_id": "B32",
|
|
875
|
+
"title": "The Design of Everyday Things, revised and expanded",
|
|
876
|
+
"notes_path": "docs/books/norman-design-of-everyday-things.md",
|
|
877
|
+
"notes_sha256": "35169ee7f94398a62816348cf26e0d9edc9d215d6f1f98566dfaebbe782bb042",
|
|
878
|
+
"primary_url": "https://jnd.org/the-design-of-everyday-things-revised-and-expanded/",
|
|
879
|
+
"notes_primary_url": "https://jnd.org/the-design-of-everyday-things-revised-and-expanded/",
|
|
880
|
+
"full_book_reviewed": false,
|
|
881
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
882
|
+
"edition": "Revised and expanded edition (2013)",
|
|
883
|
+
"authors": "Don Norman",
|
|
884
|
+
"review_summary": "People need to understand the effect of an action and interpret the result. Risky operations should support clear targeting, feedback and a practical recovery path.",
|
|
885
|
+
"review_contribution": "Provides action, feedback and error-recovery context; usability requires observation with representative users.",
|
|
886
|
+
"website_path": "/books/norman-design-of-everyday-things/",
|
|
887
|
+
"reading_references": [
|
|
888
|
+
{
|
|
889
|
+
"kind": "chapter",
|
|
890
|
+
"number": "2",
|
|
891
|
+
"title": "The Psychology of Everyday Actions",
|
|
892
|
+
"edition": "Revised and expanded edition (2013)",
|
|
893
|
+
"source_url": "https://jnd.org/books/the-design-of-everyday-things-revised-and-expanded-edition/",
|
|
894
|
+
"verification_basis": "author_toc",
|
|
895
|
+
"verification_status": "verified_primary",
|
|
896
|
+
"verified_on": "2026-11-12",
|
|
897
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
898
|
+
},
|
|
899
|
+
{
|
|
900
|
+
"kind": "chapter",
|
|
901
|
+
"number": "5",
|
|
902
|
+
"title": "Human Error? No, Bad Design",
|
|
903
|
+
"edition": "Revised and expanded edition (2013)",
|
|
904
|
+
"source_url": "https://jnd.org/books/the-design-of-everyday-things-revised-and-expanded-edition/",
|
|
905
|
+
"verification_basis": "author_toc",
|
|
906
|
+
"verification_status": "verified_primary",
|
|
907
|
+
"verified_on": "2026-11-12",
|
|
908
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
909
|
+
}
|
|
910
|
+
]
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"id": "yosifovich-windows-internals",
|
|
914
|
+
"source_id": "B33",
|
|
915
|
+
"title": "Windows Internals, Part 1 and Part 2, 7th edition",
|
|
916
|
+
"notes_path": "docs/books/yosifovich-windows-internals.md",
|
|
917
|
+
"notes_sha256": "60e09efbad083c5c598e1db4c0c73c59c5ba9c2b3881c3b48b3b257564405df3",
|
|
918
|
+
"primary_url": "https://learn.microsoft.com/en-us/sysinternals/resources/windows-internals",
|
|
919
|
+
"notes_primary_url": "https://learn.microsoft.com/en-us/sysinternals/resources/windows-internals",
|
|
920
|
+
"full_book_reviewed": false,
|
|
921
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
922
|
+
"edition": "7th edition, Part 1",
|
|
923
|
+
"authors": "Pavel Yosifovich, Alex Ionescu, Mark Russinovich and David Solomon",
|
|
924
|
+
"review_summary": "Process isolation and Windows security are separate from an application’s product policy. Review the actual process boundary and the authority transferred across it.",
|
|
925
|
+
"review_contribution": "References Part 1 only; the original notes also discuss Part 2, whose chapter numbering is not reused here.",
|
|
926
|
+
"website_path": "/books/yosifovich-windows-internals/",
|
|
927
|
+
"reading_references": [
|
|
928
|
+
{
|
|
929
|
+
"kind": "chapter",
|
|
930
|
+
"number": "3",
|
|
931
|
+
"title": "Processes and Jobs",
|
|
932
|
+
"edition": "7th edition, Part 1",
|
|
933
|
+
"source_url": "https://learn.microsoft.com/en-us/sysinternals/resources/windows-internals",
|
|
934
|
+
"verification_basis": "publisher_toc",
|
|
935
|
+
"verification_status": "verified_primary",
|
|
936
|
+
"verified_on": "2026-11-12",
|
|
937
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
"kind": "chapter",
|
|
941
|
+
"number": "7",
|
|
942
|
+
"title": "Security",
|
|
943
|
+
"edition": "7th edition, Part 1",
|
|
944
|
+
"source_url": "https://learn.microsoft.com/en-us/sysinternals/resources/windows-internals",
|
|
945
|
+
"verification_basis": "publisher_toc",
|
|
946
|
+
"verification_status": "verified_primary",
|
|
947
|
+
"verified_on": "2026-11-12",
|
|
948
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
949
|
+
}
|
|
950
|
+
]
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"id": "ford-building-evolutionary-architectures",
|
|
954
|
+
"source_id": "B03",
|
|
955
|
+
"title": "Building Evolutionary Architectures, 2nd edition",
|
|
956
|
+
"notes_path": "docs/books/ford-building-evolutionary-architectures.md",
|
|
957
|
+
"notes_sha256": "49022ef4b1d793fd7d7b8a47bb8a4b1cbe5496e7232636a47bee12c9b21d02ea",
|
|
958
|
+
"primary_url": "https://www.oreilly.com/library/view/building-evolutionary-architectures/9781492097532/",
|
|
959
|
+
"notes_primary_url": "https://nealford.com/books/bea2e.html",
|
|
960
|
+
"full_book_reviewed": false,
|
|
961
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
962
|
+
"edition": "2nd edition",
|
|
963
|
+
"authors": "Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage",
|
|
964
|
+
"review_summary": "Fitness functions turn selected architectural qualities into repeatable checks. AQAF applies this idea by asking for a constraint, an observable result and an owner.",
|
|
965
|
+
"review_contribution": "Direct methodological source for fitness functions; a static finding alone does not establish architectural conformance.",
|
|
966
|
+
"website_path": "/books/ford-building-evolutionary-architectures/",
|
|
967
|
+
"reading_references": [
|
|
968
|
+
{
|
|
969
|
+
"kind": "chapter",
|
|
970
|
+
"number": "2",
|
|
971
|
+
"title": "Fitness Functions",
|
|
972
|
+
"edition": "2nd edition",
|
|
973
|
+
"source_url": "https://www.oreilly.com/library/view/building-evolutionary-architectures/9781492097532/",
|
|
974
|
+
"verification_basis": "publisher_toc",
|
|
975
|
+
"verification_status": "verified_primary",
|
|
976
|
+
"verified_on": "2026-11-12",
|
|
977
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"kind": "chapter",
|
|
981
|
+
"number": "4",
|
|
982
|
+
"title": "Automating Architectural Governance",
|
|
983
|
+
"edition": "2nd edition",
|
|
984
|
+
"source_url": "https://www.oreilly.com/library/view/building-evolutionary-architectures/9781492097532/",
|
|
985
|
+
"verification_basis": "publisher_toc",
|
|
986
|
+
"verification_status": "verified_primary",
|
|
987
|
+
"verified_on": "2026-11-12",
|
|
988
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
989
|
+
}
|
|
990
|
+
]
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"id": "richards-ford-fundamentals-of-software-architecture",
|
|
994
|
+
"source_id": "B02",
|
|
995
|
+
"title": "Fundamentals of Software Architecture, 2nd edition",
|
|
996
|
+
"notes_path": "docs/books/richards-ford-fundamentals-of-software-architecture.md",
|
|
997
|
+
"notes_sha256": "83185fccea99e1ade9f01b97b26d99042ea460bab08022eecec6f550f4777689",
|
|
998
|
+
"primary_url": "https://www.oreilly.com/library/view/fundamentals-of-software/9781492043447/",
|
|
999
|
+
"notes_primary_url": "https://oreilly.com/library/view/fundamentals-of-software/9781098175504",
|
|
1000
|
+
"full_book_reviewed": false,
|
|
1001
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
1002
|
+
"edition": "2nd edition (2025)",
|
|
1003
|
+
"authors": "Mark Richards and Neal Ford",
|
|
1004
|
+
"review_summary": "Choose architecture from concrete product qualities and their costs. A decision record should make accepted trade-offs visible and revisitable.",
|
|
1005
|
+
"review_contribution": "Selected references use the second edition; legacy source registry B02 refers to the first edition and remains unchanged.",
|
|
1006
|
+
"website_path": "/books/richards-ford-fundamentals-of-software-architecture/",
|
|
1007
|
+
"reading_references": [
|
|
1008
|
+
{
|
|
1009
|
+
"kind": "chapter",
|
|
1010
|
+
"number": "5",
|
|
1011
|
+
"title": "Identifying Architectural Characteristics",
|
|
1012
|
+
"edition": "2nd edition (2025)",
|
|
1013
|
+
"source_url": "https://www.oreilly.com/library/view/fundamentals-of-software/9781098175504/",
|
|
1014
|
+
"verification_basis": "publisher_toc",
|
|
1015
|
+
"verification_status": "verified_primary",
|
|
1016
|
+
"verified_on": "2026-11-12",
|
|
1017
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
"kind": "chapter",
|
|
1021
|
+
"number": "6",
|
|
1022
|
+
"title": "Measuring and Governing Architecture Characteristics",
|
|
1023
|
+
"edition": "2nd edition (2025)",
|
|
1024
|
+
"source_url": "https://www.oreilly.com/library/view/fundamentals-of-software/9781098175504/",
|
|
1025
|
+
"verification_basis": "publisher_toc",
|
|
1026
|
+
"verification_status": "verified_primary",
|
|
1027
|
+
"verified_on": "2026-11-12",
|
|
1028
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1029
|
+
}
|
|
1030
|
+
]
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"id": "skeet-csharp-in-depth",
|
|
1034
|
+
"source_id": "B34",
|
|
1035
|
+
"title": "C# in Depth, 4th edition",
|
|
1036
|
+
"notes_path": "docs/books/skeet-csharp-in-depth.md",
|
|
1037
|
+
"notes_sha256": "59632cf797d6dadca2542acc300519608ea7115b050ee62e6af015f33c451dda",
|
|
1038
|
+
"primary_url": "https://csharpindepth.com/contents",
|
|
1039
|
+
"notes_primary_url": "https://csharpindepth.com/contents",
|
|
1040
|
+
"full_book_reviewed": false,
|
|
1041
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
1042
|
+
"edition": "4th edition",
|
|
1043
|
+
"authors": "Jon Skeet",
|
|
1044
|
+
"review_summary": "Understanding async language semantics helps distinguish a task being created from work being awaited and observed. Check exceptions and lifetime across the entire call chain.",
|
|
1045
|
+
"review_contribution": "Explains C# async semantics supporting the ownership review; it does not prove absence of races.",
|
|
1046
|
+
"website_path": "/books/skeet-csharp-in-depth/",
|
|
1047
|
+
"reading_references": [
|
|
1048
|
+
{
|
|
1049
|
+
"kind": "chapter",
|
|
1050
|
+
"number": "5",
|
|
1051
|
+
"title": "Writing asynchronous code",
|
|
1052
|
+
"edition": "4th edition",
|
|
1053
|
+
"source_url": "https://csharpindepth.com/contents",
|
|
1054
|
+
"verification_basis": "author_toc",
|
|
1055
|
+
"verification_status": "verified_primary",
|
|
1056
|
+
"verified_on": "2026-11-12",
|
|
1057
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"kind": "chapter",
|
|
1061
|
+
"number": "6",
|
|
1062
|
+
"title": "Async implementation",
|
|
1063
|
+
"edition": "4th edition",
|
|
1064
|
+
"source_url": "https://csharpindepth.com/contents",
|
|
1065
|
+
"verification_basis": "author_toc",
|
|
1066
|
+
"verification_status": "verified_primary",
|
|
1067
|
+
"verified_on": "2026-11-12",
|
|
1068
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1069
|
+
}
|
|
1070
|
+
]
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"id": "mcconnell-code-complete",
|
|
1074
|
+
"source_id": "B35",
|
|
1075
|
+
"title": "Code Complete, 2nd edition",
|
|
1076
|
+
"notes_path": "docs/books/mcconnell-code-complete.md",
|
|
1077
|
+
"notes_sha256": "78ce40388ba669e36f14213af95c0d2d47eb5996d19086ebafc38dd410d70b24",
|
|
1078
|
+
"primary_url": "https://blogs.msdn.microsoft.com/microsoft_press/2011/09/12/best-practices-code-complete-second-edition/",
|
|
1079
|
+
"notes_primary_url": "https://blogs.msdn.microsoft.com/microsoft_press/2011/09/12/best-practices-code-complete-second-edition/",
|
|
1080
|
+
"full_book_reviewed": false,
|
|
1081
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
1082
|
+
"edition": "2nd edition",
|
|
1083
|
+
"authors": "Steve McConnell",
|
|
1084
|
+
"review_summary": "Construction quality includes explicit design decisions and deliberate handling of invalid states. AQAF uses this perspective to ask how a chosen constraint is enforced in actual code.",
|
|
1085
|
+
"review_contribution": "Supporting construction-quality context for the evolution review; this book is not attributed as the origin of architectural fitness functions.",
|
|
1086
|
+
"website_path": "/books/mcconnell-code-complete/",
|
|
1087
|
+
"reading_references": [
|
|
1088
|
+
{
|
|
1089
|
+
"kind": "chapter",
|
|
1090
|
+
"number": "5",
|
|
1091
|
+
"title": "Design in Construction",
|
|
1092
|
+
"edition": "2nd edition",
|
|
1093
|
+
"source_url": "https://www.microsoftpressstore.com/articles/article.aspx?p=2222451",
|
|
1094
|
+
"verification_basis": "publisher_excerpt",
|
|
1095
|
+
"verification_status": "verified_primary",
|
|
1096
|
+
"verified_on": "2026-11-12",
|
|
1097
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
"kind": "chapter",
|
|
1101
|
+
"number": "8",
|
|
1102
|
+
"title": "Defensive Programming",
|
|
1103
|
+
"edition": "2nd edition",
|
|
1104
|
+
"source_url": "https://www.microsoftpressstore.com/articles/article.aspx?p=2222451",
|
|
1105
|
+
"verification_basis": "publisher_excerpt",
|
|
1106
|
+
"verification_status": "verified_primary",
|
|
1107
|
+
"verified_on": "2026-11-12",
|
|
1108
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1109
|
+
}
|
|
1110
|
+
]
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"id": "hunt-thomas-pragmatic-programmer",
|
|
1114
|
+
"source_id": "B36",
|
|
1115
|
+
"title": "The Pragmatic Programmer, 20th anniversary edition",
|
|
1116
|
+
"notes_path": "docs/books/hunt-thomas-pragmatic-programmer.md",
|
|
1117
|
+
"notes_sha256": "5ef40c71c2a9dcf332cc8929b50615b64829459f7d03dbd22e199b6cc578ca9a",
|
|
1118
|
+
"primary_url": "https://www.pearson.com/en-gb/subject-catalog/p/pragmatic-programmer-the-your-journey-to-mastery-20th-anniversary-edition/P200000000337/9780135956915",
|
|
1119
|
+
"notes_primary_url": "https://www.pearson.com/en-gb/subject-catalog/p/pragmatic-programmer-the-your-journey-to-mastery-20th-anniversary-edition/P200000000337/9780135956915",
|
|
1120
|
+
"full_book_reviewed": false,
|
|
1121
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
1122
|
+
"edition": "20th anniversary edition, 2nd edition",
|
|
1123
|
+
"authors": "David Thomas and Andrew Hunt",
|
|
1124
|
+
"review_summary": "Preserve options where uncertainty is high and state assumptions at interfaces. Decisions become easier to revisit when their consequences and contracts are explicit.",
|
|
1125
|
+
"review_contribution": "Provides reversibility and contract topics; topic numbers below are not chapter numbers.",
|
|
1126
|
+
"website_path": "/books/hunt-thomas-pragmatic-programmer/",
|
|
1127
|
+
"reading_references": [
|
|
1128
|
+
{
|
|
1129
|
+
"kind": "topic",
|
|
1130
|
+
"number": "11",
|
|
1131
|
+
"title": "Reversibility",
|
|
1132
|
+
"edition": "20th anniversary edition, 2nd edition",
|
|
1133
|
+
"source_url": "https://www.pearson.com/en-gb/subject-catalog/p/pragmatic-programmer-the-your-journey-to-mastery-20th-anniversary-edition/P200000000337/9780135956915",
|
|
1134
|
+
"verification_basis": "publisher_toc",
|
|
1135
|
+
"verification_status": "verified_primary",
|
|
1136
|
+
"verified_on": "2026-11-12",
|
|
1137
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"kind": "topic",
|
|
1141
|
+
"number": "23",
|
|
1142
|
+
"title": "Design by Contract",
|
|
1143
|
+
"edition": "20th anniversary edition, 2nd edition",
|
|
1144
|
+
"source_url": "https://www.pearson.com/en-gb/subject-catalog/p/pragmatic-programmer-the-your-journey-to-mastery-20th-anniversary-edition/P200000000337/9780135956915",
|
|
1145
|
+
"verification_basis": "publisher_toc",
|
|
1146
|
+
"verification_status": "verified_primary",
|
|
1147
|
+
"verified_on": "2026-11-12",
|
|
1148
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1149
|
+
}
|
|
1150
|
+
]
|
|
1151
|
+
},
|
|
1152
|
+
{
|
|
1153
|
+
"id": "tornhill-your-code-as-a-crime-scene",
|
|
1154
|
+
"source_id": "B37",
|
|
1155
|
+
"title": "Your Code as a Crime Scene, 2nd edition",
|
|
1156
|
+
"notes_path": "docs/books/tornhill-your-code-as-a-crime-scene.md",
|
|
1157
|
+
"notes_sha256": "3b4a6f5af772f4b43cb50a327b9800af655f9529356e71175676ed3cd7af5e6b",
|
|
1158
|
+
"primary_url": "https://adamtornhill.com",
|
|
1159
|
+
"notes_primary_url": "https://adamtornhill.com",
|
|
1160
|
+
"full_book_reviewed": false,
|
|
1161
|
+
"verification_basis": "Secondary application notes; selected reading references independently verified against the primary sources listed below. Full book not reviewed.",
|
|
1162
|
+
"edition": "2nd edition (2024)",
|
|
1163
|
+
"authors": "Adam Tornhill",
|
|
1164
|
+
"review_summary": "Change history can help choose where to investigate. Frequent change is a signal to combine with complexity and product context, rather than a defect verdict.",
|
|
1165
|
+
"review_contribution": "Provides history-informed investigation context; file modification times are not commit frequency and no history is mined by this agenda.",
|
|
1166
|
+
"website_path": "/books/tornhill-your-code-as-a-crime-scene/",
|
|
1167
|
+
"reading_references": [
|
|
1168
|
+
{
|
|
1169
|
+
"kind": "chapter",
|
|
1170
|
+
"number": null,
|
|
1171
|
+
"title": "Discover Hotspots: Create an Offender Profile of Code",
|
|
1172
|
+
"edition": "2nd edition (2024)",
|
|
1173
|
+
"source_url": "https://pragprog.com/titles/atcrime2/your-code-as-a-crime-scene-second-edition/",
|
|
1174
|
+
"verification_basis": "publisher_toc",
|
|
1175
|
+
"verification_status": "verified_primary",
|
|
1176
|
+
"verified_on": "2026-11-12",
|
|
1177
|
+
"verification_scope": "Title, numbering where supplied, and edition only; AQAF applications are original editorial guidance, not quotations or detector validation."
|
|
1178
|
+
}
|
|
1179
|
+
]
|
|
1180
|
+
}
|
|
1181
|
+
],
|
|
1182
|
+
"principles": [
|
|
1183
|
+
{
|
|
1184
|
+
"id": "AQK-ATTRIBUTES-001",
|
|
1185
|
+
"title": "Choose architecture by product trade-offs",
|
|
1186
|
+
"book_ids": [
|
|
1187
|
+
"richards-ford-fundamentals-of-software-architecture",
|
|
1188
|
+
"hunt-thomas-pragmatic-programmer"
|
|
1189
|
+
],
|
|
1190
|
+
"question": "Which user-visible qualities justify this architecture, what alternatives were considered, and what cost was accepted?",
|
|
1191
|
+
"required_evidence": "product scenarios and a decision record with alternatives and consequences",
|
|
1192
|
+
"verification": "Walk through a concrete failure/change scenario; compare at least one simpler alternative.",
|
|
1193
|
+
"limitations": "A desktop tool or small script need not adopt service boundaries, a formal domain model or additional layers.",
|
|
1194
|
+
"applies_when": {
|
|
1195
|
+
"profiles": [],
|
|
1196
|
+
"facets": [],
|
|
1197
|
+
"languages": []
|
|
1198
|
+
},
|
|
1199
|
+
"website_path": "/learn/architecture-trade-offs/",
|
|
1200
|
+
"explanation": "Choose a structure because it serves a concrete product need. Record the cost you accept, so later reviewers can tell when the decision should change.",
|
|
1201
|
+
"example": "A classroom management tool may favor reliable offline operation over central coordination. A decision record can state which operations remain local and what happens when the server cannot be reached.",
|
|
1202
|
+
"counterexample": "Splitting a small offline utility into services solely to match an architecture label adds failure modes without evidence of benefit.",
|
|
1203
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1204
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1205
|
+
},
|
|
1206
|
+
{
|
|
1207
|
+
"id": "AQK-BOUNDARY-001",
|
|
1208
|
+
"title": "Hide volatile decisions behind useful contracts",
|
|
1209
|
+
"book_ids": [
|
|
1210
|
+
"ousterhout-philosophy-of-software-design",
|
|
1211
|
+
"martin-clean-architecture",
|
|
1212
|
+
"fowler-patterns-of-enterprise-application-architecture",
|
|
1213
|
+
"evans-domain-driven-design"
|
|
1214
|
+
],
|
|
1215
|
+
"question": "Which module owns each volatile decision and domain term, and what must callers know about frameworks, storage or transport?",
|
|
1216
|
+
"required_evidence": "module contracts, allowed dependencies, ownership and caller examples",
|
|
1217
|
+
"verification": "Trace a real use case through policy and effects; test the contract using an alternate adapter or fake.",
|
|
1218
|
+
"limitations": "File/class counts and short methods do not establish a deep module. A useful boundary needs a reason to vary; no mandatory extra abstraction.",
|
|
1219
|
+
"applies_when": {
|
|
1220
|
+
"profiles": [],
|
|
1221
|
+
"facets": [],
|
|
1222
|
+
"languages": []
|
|
1223
|
+
},
|
|
1224
|
+
"website_path": "/learn/useful-boundaries/",
|
|
1225
|
+
"explanation": "A boundary earns its cost when it hides a decision likely to change and gives callers a clear, stable contract. File counts and interface counts do not establish that value.",
|
|
1226
|
+
"example": "A classroom action can depend on a small device-command contract while transport and operating-system details stay behind an adapter. Review whether callers still need to know those details.",
|
|
1227
|
+
"counterexample": "An interface that exposes every transport field may move code without reducing coupling.",
|
|
1228
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1229
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"id": "AQK-CHANGE-001",
|
|
1233
|
+
"title": "Separate characterization from behavior changes",
|
|
1234
|
+
"book_ids": [
|
|
1235
|
+
"fowler-refactoring",
|
|
1236
|
+
"feathers-working-effectively-with-legacy-code",
|
|
1237
|
+
"beck-test-driven-development"
|
|
1238
|
+
],
|
|
1239
|
+
"question": "Before changing existing behavior, what observable contract is captured, and which new behavior is tested separately?",
|
|
1240
|
+
"required_evidence": "characterization cases, a focused change plan and explicit behavior differences",
|
|
1241
|
+
"verification": "Demonstrate the existing behavior first, then show a failing case for the intended change and a small reversible step.",
|
|
1242
|
+
"limitations": "Characterization can preserve a bug temporarily; it is not approval of that behavior or authorization to refactor this repository.",
|
|
1243
|
+
"applies_when": {
|
|
1244
|
+
"profiles": [],
|
|
1245
|
+
"facets": [],
|
|
1246
|
+
"languages": []
|
|
1247
|
+
},
|
|
1248
|
+
"website_path": "/learn/safe-structural-change/",
|
|
1249
|
+
"explanation": "Understand the current observable behavior before changing structure. Decide separately which existing behaviors should be preserved and which should intentionally change.",
|
|
1250
|
+
"example": "Before replacing a classroom command dispatcher, record the responses for unknown devices, duplicate commands and timeouts. Change structure separately from changing those responses.",
|
|
1251
|
+
"counterexample": "A large rewrite followed by tests copied from the new implementation does not show that important old behavior survived.",
|
|
1252
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1253
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1254
|
+
},
|
|
1255
|
+
{
|
|
1256
|
+
"id": "AQK-TEST-001",
|
|
1257
|
+
"title": "Test meaningful outcomes at the correct seam",
|
|
1258
|
+
"book_ids": [
|
|
1259
|
+
"khorikov-unit-testing",
|
|
1260
|
+
"meszaros-xunit-test-patterns",
|
|
1261
|
+
"freeman-pryce-growing-object-oriented-software",
|
|
1262
|
+
"crispin-gregory-agile-testing"
|
|
1263
|
+
],
|
|
1264
|
+
"question": "Which tests protect observable outcomes, which external effects require integration tests, and which outcomes require a person or real device?",
|
|
1265
|
+
"required_evidence": "behavioral cases, independent fixtures, system-test results and named manual confirmations",
|
|
1266
|
+
"verification": "Challenge a test with a realistic broken implementation; use deterministic async signals rather than arbitrary sleeps or shared mutable fakes.",
|
|
1267
|
+
"limitations": "A test-file count or passing suite does not verify hardware/UI behavior. Mock/fake choices depend on ownership and the actual contract.",
|
|
1268
|
+
"applies_when": {
|
|
1269
|
+
"profiles": [],
|
|
1270
|
+
"facets": [],
|
|
1271
|
+
"languages": []
|
|
1272
|
+
},
|
|
1273
|
+
"website_path": "/learn/valuable-test-evidence/",
|
|
1274
|
+
"explanation": "Ask what important failure a test can detect and how the expected result is established. Fast isolated tests, collaboration checks and user exploration supply different evidence.",
|
|
1275
|
+
"example": "A timeout test should verify the visible command outcome and cleanup. A receiver authorization test should exercise the receiver boundary, even if a mock already confirms that a method was called.",
|
|
1276
|
+
"counterexample": "A high test count or coverage percentage does not show that failures are detected or that deployed components work together.",
|
|
1277
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1278
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1279
|
+
},
|
|
1280
|
+
{
|
|
1281
|
+
"id": "AQK-FAILURE-001",
|
|
1282
|
+
"title": "Bound work and resolve ambiguous outcomes",
|
|
1283
|
+
"book_ids": [
|
|
1284
|
+
"nygard-release-it",
|
|
1285
|
+
"kleppmann-designing-data-intensive-applications"
|
|
1286
|
+
],
|
|
1287
|
+
"question": "What happens when an operation hangs, partially succeeds, fills storage or times out after the remote side has committed?",
|
|
1288
|
+
"required_evidence": "deadline, resource and retry policies; cleanup ownership; recovery/read-back protocol",
|
|
1289
|
+
"verification": "Inject a slow dependency, truncated write and ambiguous timeout; verify bounded retries, recoverable state and visible outcomes.",
|
|
1290
|
+
"limitations": "These are failure experiments to prepare, never runtime properties inferred from timeout or retry spellings.",
|
|
1291
|
+
"applies_when": {
|
|
1292
|
+
"profiles": [
|
|
1293
|
+
"api_backend",
|
|
1294
|
+
"ai_pipeline",
|
|
1295
|
+
"windows_client_server",
|
|
1296
|
+
"multirepo_system",
|
|
1297
|
+
"mcp_agent_server",
|
|
1298
|
+
"scraper_data_pipeline"
|
|
1299
|
+
],
|
|
1300
|
+
"facets": [
|
|
1301
|
+
"proxy",
|
|
1302
|
+
"backup",
|
|
1303
|
+
"windows_service",
|
|
1304
|
+
"browser_worker"
|
|
1305
|
+
],
|
|
1306
|
+
"languages": []
|
|
1307
|
+
},
|
|
1308
|
+
"website_path": "/learn/bounded-failure/",
|
|
1309
|
+
"explanation": "Failure handling needs an explicit time budget and an outcome the caller can interpret. A timeout may leave the business result unknown even when the connection has ended.",
|
|
1310
|
+
"example": "If a classroom command times out after sending, show an unknown outcome until reconciliation establishes whether it ran. Bound concurrent attempts and define when another attempt is safe.",
|
|
1311
|
+
"counterexample": "Blind retries after every timeout may execute a destructive action twice.",
|
|
1312
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1313
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1314
|
+
},
|
|
1315
|
+
{
|
|
1316
|
+
"id": "AQK-PROTOCOL-001",
|
|
1317
|
+
"title": "Version contracts and make retries deliberate",
|
|
1318
|
+
"book_ids": [
|
|
1319
|
+
"hohpe-woolf-enterprise-integration-patterns",
|
|
1320
|
+
"kleppmann-designing-data-intensive-applications",
|
|
1321
|
+
"fowler-patterns-of-enterprise-application-architecture"
|
|
1322
|
+
],
|
|
1323
|
+
"question": "How are versions, capabilities, correlation, duplicates, ordering and expired requests handled at both ends of a boundary?",
|
|
1324
|
+
"required_evidence": "message/DTO contracts, sender and receiver validation, version/duplicate policies",
|
|
1325
|
+
"verification": "Exercise duplicate and reordered requests, lost replies and old/new peer versions; distinguish retry safety from exactly-once claims.",
|
|
1326
|
+
"limitations": "Request/reply can use these ideas without a broker. Hash equality, transport encryption and request IDs alone do not prove authentication or replay protection.",
|
|
1327
|
+
"applies_when": {
|
|
1328
|
+
"profiles": [
|
|
1329
|
+
"api_backend",
|
|
1330
|
+
"multirepo_system",
|
|
1331
|
+
"windows_client_server",
|
|
1332
|
+
"mcp_agent_server"
|
|
1333
|
+
],
|
|
1334
|
+
"facets": [
|
|
1335
|
+
"proxy",
|
|
1336
|
+
"windows_service"
|
|
1337
|
+
],
|
|
1338
|
+
"languages": []
|
|
1339
|
+
},
|
|
1340
|
+
"website_path": "/learn/contracts-and-retries/",
|
|
1341
|
+
"explanation": "A protocol needs agreed message meaning, compatibility and failure behavior. Delivery mechanisms alone cannot guarantee a business action happens exactly once.",
|
|
1342
|
+
"example": "Give a classroom command a version and operation identity. Document which duplicates the receiver recognizes and what happens when an older agent receives an unfamiliar field.",
|
|
1343
|
+
"counterexample": "Adding an operation identifier without storing or checking it at the receiver does not make retries idempotent.",
|
|
1344
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1345
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
"id": "AQK-WINDOWS-001",
|
|
1349
|
+
"title": "Review identity, session and broker authority separately",
|
|
1350
|
+
"book_ids": [
|
|
1351
|
+
"forshaw-windows-security-internals",
|
|
1352
|
+
"yosifovich-windows-internals",
|
|
1353
|
+
"howard-leblanc-writing-secure-code",
|
|
1354
|
+
"shostack-threat-modeling"
|
|
1355
|
+
],
|
|
1356
|
+
"question": "Which identity and session performs each action, and how does the receiver authorize a module, helper or client before exercising privilege?",
|
|
1357
|
+
"required_evidence": "trust-boundary model, service/helper identities, requested capabilities and receiver-side authorization tests",
|
|
1358
|
+
"verification": "On an owner-approved Windows test machine, verify denied cross-role requests, wrong-session actions, staging/path replacement and cleanup after interruption.",
|
|
1359
|
+
"limitations": "C# alone does not establish Windows deployment. These notes do not certify ACLs, token behavior or supported Windows versions.",
|
|
1360
|
+
"applies_when": {
|
|
1361
|
+
"profiles": [
|
|
1362
|
+
"windows_client_server"
|
|
1363
|
+
],
|
|
1364
|
+
"facets": [
|
|
1365
|
+
"windows_service"
|
|
1366
|
+
],
|
|
1367
|
+
"languages": []
|
|
1368
|
+
},
|
|
1369
|
+
"website_path": "/learn/windows-authority/",
|
|
1370
|
+
"explanation": "Separate operating-system identity, interactive session, application role and broker permissions. Check authorization where the privileged action is received.",
|
|
1371
|
+
"example": "A desktop UI can request a classroom action through a service. Review the service’s caller verification, message validation and permitted action set independently of what the UI allows.",
|
|
1372
|
+
"counterexample": "A hidden UI button or a local connection by itself is insufficient evidence that a privileged receiver authorizes each operation.",
|
|
1373
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1374
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
"id": "AQK-CONCURRENCY-001",
|
|
1378
|
+
"title": "Give asynchronous work an owner and an outcome",
|
|
1379
|
+
"book_ids": [
|
|
1380
|
+
"cleary-concurrency-in-csharp-cookbook",
|
|
1381
|
+
"skeet-csharp-in-depth"
|
|
1382
|
+
],
|
|
1383
|
+
"question": "Who owns cancellation, progress, continuations and shutdown, and which event handlers legitimately need a void return?",
|
|
1384
|
+
"required_evidence": "lifetime/cancellation contracts, UI-thread rules and language/runtime compatibility",
|
|
1385
|
+
"verification": "Test cancellation before/during completion, late progress and concurrent shutdown using controllable synchronization; reserve async-void review for its actual event context.",
|
|
1386
|
+
"limitations": "Async is not necessarily parallel; a syntactic match does not prove a deadlock. Book language coverage does not establish support for newer compiler features.",
|
|
1387
|
+
"applies_when": {
|
|
1388
|
+
"profiles": [],
|
|
1389
|
+
"facets": [
|
|
1390
|
+
"browser_worker"
|
|
1391
|
+
],
|
|
1392
|
+
"languages": [
|
|
1393
|
+
"csharp"
|
|
1394
|
+
]
|
|
1395
|
+
},
|
|
1396
|
+
"website_path": "/learn/asynchronous-ownership/",
|
|
1397
|
+
"explanation": "Every asynchronous operation needs someone responsible for its lifetime and outcome. Review cancellation, exceptions and shutdown together rather than treating async syntax as a quality signal.",
|
|
1398
|
+
"example": "When a classroom view closes, define whether its device requests are cancelled or continue under a longer-lived owner. The owner should observe completion and report an intelligible result.",
|
|
1399
|
+
"counterexample": "A fire-and-forget call can outlive its view and lose exceptions even when all methods are marked async.",
|
|
1400
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1401
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1402
|
+
},
|
|
1403
|
+
{
|
|
1404
|
+
"id": "AQK-TRUST-001",
|
|
1405
|
+
"title": "Keep integrity, authentication and authority distinct",
|
|
1406
|
+
"book_ids": [
|
|
1407
|
+
"shostack-threat-modeling",
|
|
1408
|
+
"anderson-security-engineering",
|
|
1409
|
+
"aumasson-serious-cryptography",
|
|
1410
|
+
"ristic-bulletproof-tls-and-pki"
|
|
1411
|
+
],
|
|
1412
|
+
"question": "What security property is required at each boundary, who is trusted to assert identity, and how are rotation and recovery handled without encouraging bypass?",
|
|
1413
|
+
"required_evidence": "threat model, key/trust lifecycle, protocol rationale and expert/platform review",
|
|
1414
|
+
"verification": "Prepare wrong-peer, revoked-key and failed-rotation cases for an authorized test environment; have specialists assess constructions against current platform guidance.",
|
|
1415
|
+
"limitations": "No cryptographic construction, algorithm strength or TLS configuration is validated by this agenda. Book summaries are not current cryptographic implementation instructions.",
|
|
1416
|
+
"applies_when": {
|
|
1417
|
+
"profiles": [
|
|
1418
|
+
"windows_client_server",
|
|
1419
|
+
"api_backend",
|
|
1420
|
+
"mcp_agent_server",
|
|
1421
|
+
"multirepo_system"
|
|
1422
|
+
],
|
|
1423
|
+
"facets": [
|
|
1424
|
+
"authentication",
|
|
1425
|
+
"proxy",
|
|
1426
|
+
"windows_service"
|
|
1427
|
+
],
|
|
1428
|
+
"languages": []
|
|
1429
|
+
},
|
|
1430
|
+
"website_path": "/learn/integrity-identity-authority/",
|
|
1431
|
+
"explanation": "Integrity, peer identity and permission to act answer separate questions. Describe the threat and trust assumptions before choosing cryptographic or access-control mechanisms.",
|
|
1432
|
+
"example": "For a classroom command channel, ask separately whether the message was altered, which peer sent it and whether that peer may perform this action on this device.",
|
|
1433
|
+
"counterexample": "A checksum detects some changes but does not establish an authorized sender; encrypted transport does not define application permissions.",
|
|
1434
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1435
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
"id": "AQK-RELEASE-001",
|
|
1439
|
+
"title": "Promote one identifiable artifact and rehearse recovery",
|
|
1440
|
+
"book_ids": [
|
|
1441
|
+
"humble-farley-continuous-delivery"
|
|
1442
|
+
],
|
|
1443
|
+
"question": "Is the tested artifact the artifact shipped, and how are application/data compatibility and failed updates recovered?",
|
|
1444
|
+
"required_evidence": "artifact digests, build provenance, compatibility matrix and recovery drill results",
|
|
1445
|
+
"verification": "Trace one digest from build to test to release; on a permitted disposable installation rehearse interrupted update and rollback/roll-forward including data.",
|
|
1446
|
+
"limitations": "Signed or hashed files establish only their stated integrity/provenance properties; a green build is not proof of release readiness.",
|
|
1447
|
+
"applies_when": {
|
|
1448
|
+
"profiles": [],
|
|
1449
|
+
"facets": [],
|
|
1450
|
+
"languages": []
|
|
1451
|
+
},
|
|
1452
|
+
"website_path": "/learn/release-and-recovery/",
|
|
1453
|
+
"explanation": "Connect a release to the exact artifact and configuration that were verified. Rehearse recovery with the actual compatibility and data constraints.",
|
|
1454
|
+
"example": "Record the hashes and compatible versions of the classroom controller and agents. Rehearse an interrupted upgrade and decide how older agents continue or safely refuse requests.",
|
|
1455
|
+
"counterexample": "Rebuilding after validation may produce a different artifact; rolling back a binary may leave an incompatible database.",
|
|
1456
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1457
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1458
|
+
},
|
|
1459
|
+
{
|
|
1460
|
+
"id": "AQK-OPERATIONS-001",
|
|
1461
|
+
"title": "Measure user outcomes and learn from failure",
|
|
1462
|
+
"book_ids": [
|
|
1463
|
+
"beyer-site-reliability-engineering",
|
|
1464
|
+
"nygard-release-it"
|
|
1465
|
+
],
|
|
1466
|
+
"question": "Which observable user outcomes matter, who acts on failures, and what changes after an incident or repeated manual task?",
|
|
1467
|
+
"required_evidence": "measured indicators/objectives, meaningful alerts, runbooks and follow-up records",
|
|
1468
|
+
"verification": "Rehearse a representative fault and recovery, checking whether the user and operator can tell success from partial completion.",
|
|
1469
|
+
"limitations": "Do not import a large-service on-call model or arbitrary SLO numbers into a small desktop tool.",
|
|
1470
|
+
"applies_when": {
|
|
1471
|
+
"profiles": [
|
|
1472
|
+
"api_backend",
|
|
1473
|
+
"windows_client_server",
|
|
1474
|
+
"multirepo_system",
|
|
1475
|
+
"mcp_agent_server"
|
|
1476
|
+
],
|
|
1477
|
+
"facets": [
|
|
1478
|
+
"proxy",
|
|
1479
|
+
"windows_service"
|
|
1480
|
+
],
|
|
1481
|
+
"languages": []
|
|
1482
|
+
},
|
|
1483
|
+
"website_path": "/learn/user-outcomes-and-operations/",
|
|
1484
|
+
"explanation": "Choose operational measures that describe a useful outcome, then connect failures to a response. An alert should help someone decide what to do.",
|
|
1485
|
+
"example": "Measure whether a classroom command completes within the agreed time for connected devices. A response guide can distinguish an offline device from a broken controller and identify the next safe action.",
|
|
1486
|
+
"counterexample": "Healthy process metrics alone do not establish that a teacher’s command reached the intended devices.",
|
|
1487
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1488
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
"id": "AQK-EVOLUTION-001",
|
|
1492
|
+
"title": "Turn chosen constraints into falsifiable checks",
|
|
1493
|
+
"book_ids": [
|
|
1494
|
+
"ford-building-evolutionary-architectures",
|
|
1495
|
+
"mcconnell-code-complete"
|
|
1496
|
+
],
|
|
1497
|
+
"question": "Which architecture rule prevents a real drift, and what evidence shows its check can fail for the intended violation?",
|
|
1498
|
+
"required_evidence": "a declared constraint, scope, owner and valid/violating fixtures",
|
|
1499
|
+
"verification": "Run the check against a conforming fixture and a deliberate violation; record false-positive limits and the maintenance owner.",
|
|
1500
|
+
"limitations": "Folder presence, class size and an always-green test do not establish architectural conformance; avoid magical metric thresholds.",
|
|
1501
|
+
"applies_when": {
|
|
1502
|
+
"profiles": [],
|
|
1503
|
+
"facets": [],
|
|
1504
|
+
"languages": []
|
|
1505
|
+
},
|
|
1506
|
+
"website_path": "/learn/architectural-fitness-functions/",
|
|
1507
|
+
"explanation": "A fitness function makes a chosen architectural constraint observable and repeatable. Define the desired property, a check that could fail, an owner and the conditions under which the constraint should be reconsidered.",
|
|
1508
|
+
"example": "If a classroom command protocol must remain independent of the desktop UI, a dependency check can reject imports from the protocol into UI code. Pair it with compatibility tests for the behaviors that imports cannot establish.",
|
|
1509
|
+
"counterexample": "A green import check cannot establish authorization, delivery success or acceptable latency. The constraint must first be justified by the product.",
|
|
1510
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1511
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"id": "AQK-UX-001",
|
|
1515
|
+
"title": "Make risky operations understandable and recoverable",
|
|
1516
|
+
"book_ids": [
|
|
1517
|
+
"norman-design-of-everyday-things"
|
|
1518
|
+
],
|
|
1519
|
+
"question": "Can the user predict the action, see partial progress/failure and recover without learning implementation details?",
|
|
1520
|
+
"required_evidence": "user scenarios, action/result mapping, accessible feedback and recovery behavior",
|
|
1521
|
+
"verification": "Have a representative user try failure and undo paths; verify exact restoration or explicitly document irreversible effects.",
|
|
1522
|
+
"limitations": "Confirmation fatigue is a design risk; do not add prompts to every benign action or infer usability from screenshots/markup.",
|
|
1523
|
+
"applies_when": {
|
|
1524
|
+
"profiles": [
|
|
1525
|
+
"desktop_utility",
|
|
1526
|
+
"windows_client_server",
|
|
1527
|
+
"swift_app",
|
|
1528
|
+
"tauri_electron",
|
|
1529
|
+
"android",
|
|
1530
|
+
"browser_extension"
|
|
1531
|
+
],
|
|
1532
|
+
"facets": [
|
|
1533
|
+
"desktop_ui",
|
|
1534
|
+
"desktop_widget",
|
|
1535
|
+
"browser_python"
|
|
1536
|
+
],
|
|
1537
|
+
"languages": []
|
|
1538
|
+
},
|
|
1539
|
+
"website_path": "/learn/recoverable-user-actions/",
|
|
1540
|
+
"explanation": "Help people understand what an action will affect, what happened and how to recover. Risk and ambiguity should shape feedback and recovery design.",
|
|
1541
|
+
"example": "Before a bulk classroom action, show the selected devices and intended effect. Afterwards distinguish success, refusal, offline devices and unknown outcomes, with a safe way to investigate.",
|
|
1542
|
+
"counterexample": "A generic success toast after dispatch hides partial failure; repeated confirmation dialogs can become habitual and fail to prevent targeting mistakes.",
|
|
1543
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1544
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"id": "AQK-HISTORY-001",
|
|
1548
|
+
"title": "Use change history as evidence, not a quality verdict",
|
|
1549
|
+
"book_ids": [
|
|
1550
|
+
"tornhill-your-code-as-a-crime-scene"
|
|
1551
|
+
],
|
|
1552
|
+
"question": "Where do independently supplied change frequency, complexity and co-change evidence suggest a focused investigation?",
|
|
1553
|
+
"required_evidence": "owner-supplied commit/change history; mtime is not change frequency",
|
|
1554
|
+
"verification": "Check history coverage and bulk/squash artifacts, then inspect a candidate hotspot and characterize behavior before extracting code.",
|
|
1555
|
+
"limitations": "No Git hooks or repository commands are run. Without history, hotspot and temporal-coupling conclusions remain unknown; never rank people from these metrics.",
|
|
1556
|
+
"applies_when": {
|
|
1557
|
+
"profiles": [],
|
|
1558
|
+
"facets": [],
|
|
1559
|
+
"languages": []
|
|
1560
|
+
},
|
|
1561
|
+
"website_path": "/learn/history-informed-review/",
|
|
1562
|
+
"explanation": "Use owner-supplied change history to select investigation areas. Combine change frequency with structure and product context, and avoid judging individual contributors.",
|
|
1563
|
+
"example": "If a classroom synchronization component changes often and repeatedly needs emergency fixes, inspect its contracts and tests first. Check whether generated files or repository moves distort the history.",
|
|
1564
|
+
"counterexample": "A large file, recent modification time or a busy contributor is insufficient evidence of a defect or an architectural problem.",
|
|
1565
|
+
"example_basis": "Illustrative classroom-management scenario adapted from the review themes; not a verified finding about Classroom Manager or any deployed project.",
|
|
1566
|
+
"editorial_basis": "Original AQAF application guidance; primary-source checks establish reading-reference facts, not this application or detector accuracy."
|
|
1567
|
+
}
|
|
1568
|
+
],
|
|
1569
|
+
"limitations": [
|
|
1570
|
+
"Imported application summaries, not a full-text reading of the books.",
|
|
1571
|
+
"Questions are unknown/unconfirmed review work, not detected architecture failures.",
|
|
1572
|
+
"No ratings, prices, covers, PDFs, long quotations or unverified chapter/edition-specific claims are imported."
|
|
1573
|
+
]
|
|
1574
|
+
}
|