agent-quality-kit 0.2.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.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -0
  3. package/kit/docs/ai/agent-harness-playbook.md +596 -0
  4. package/kit/docs/ai/ai-native-development.md +371 -0
  5. package/kit/docs/ai/ai-sdlc.md +221 -0
  6. package/kit/docs/ai/anthropic-ai-native-sdlc-2026-08.md +294 -0
  7. package/kit/docs/ai/app-owner-strategy.md +921 -0
  8. package/kit/docs/ai/deep-research-2026-07.md +161 -0
  9. package/kit/docs/ai/harness-best-practices.md +385 -0
  10. package/kit/docs/ai/index.md +64 -0
  11. package/kit/docs/ai/project-baseline.md +261 -0
  12. package/kit/docs/ai/quality-gates-checklist.md +322 -0
  13. package/kit/docs/ai/sources-building-with-agents.md +111 -0
  14. package/kit/docs/ai/stream-2026-08-ai-coding-panel.md +304 -0
  15. package/kit/docs/ready-made-rules.md +170 -0
  16. package/kit/gates/README.md +231 -0
  17. package/kit/gates/_skip.sh +75 -0
  18. package/kit/gates/commit-explains-itself/README.md +45 -0
  19. package/kit/gates/commit-explains-itself/check.sh +63 -0
  20. package/kit/gates/commit-explains-itself/gate.yml +10 -0
  21. package/kit/gates/commit-explains-itself/green/COMMIT_MSG +6 -0
  22. package/kit/gates/commit-explains-itself/red/COMMIT_MSG +3 -0
  23. package/kit/gates/complexity-limit/README.md +37 -0
  24. package/kit/gates/complexity-limit/check.sh +44 -0
  25. package/kit/gates/complexity-limit/gate.yml +13 -0
  26. package/kit/gates/complexity-limit/green/flat.py +10 -0
  27. package/kit/gates/complexity-limit/red/deep.py +9 -0
  28. package/kit/gates/dead-code/README.md +30 -0
  29. package/kit/gates/dead-code/gate.yml +23 -0
  30. package/kit/gates/dead-code/green/mod.py +9 -0
  31. package/kit/gates/dead-code/red/mod.py +9 -0
  32. package/kit/gates/deps-are-pinned/README.md +29 -0
  33. package/kit/gates/deps-are-pinned/check.sh +49 -0
  34. package/kit/gates/deps-are-pinned/gate.yml +9 -0
  35. package/kit/gates/deps-are-pinned/green/nodep-go/go.mod +3 -0
  36. package/kit/gates/deps-are-pinned/green/package-lock.json +3 -0
  37. package/kit/gates/deps-are-pinned/green/package.json +4 -0
  38. package/kit/gates/deps-are-pinned/green/requirements.txt +2 -0
  39. package/kit/gates/deps-are-pinned/red/package.json +4 -0
  40. package/kit/gates/deps-are-pinned/red/requirements.txt +2 -0
  41. package/kit/gates/deps-are-pinned/red/withdep-go/go.mod +5 -0
  42. package/kit/gates/duplicate-code/README.md +40 -0
  43. package/kit/gates/duplicate-code/check.sh +58 -0
  44. package/kit/gates/duplicate-code/gate.yml +12 -0
  45. package/kit/gates/duplicate-code/green/common.py +9 -0
  46. package/kit/gates/duplicate-code/green/use.py +9 -0
  47. package/kit/gates/duplicate-code/red/a.py +12 -0
  48. package/kit/gates/duplicate-code/red/b.py +12 -0
  49. package/kit/gates/entry-links-exist/README.md +22 -0
  50. package/kit/gates/entry-links-exist/check.sh +24 -0
  51. package/kit/gates/entry-links-exist/gate.yml +16 -0
  52. package/kit/gates/entry-links-exist/green/AGENTS.md +5 -0
  53. package/kit/gates/entry-links-exist/green/rules/general.md +3 -0
  54. package/kit/gates/entry-links-exist/red/AGENTS.md +3 -0
  55. package/kit/gates/file-size-limit/README.md +22 -0
  56. package/kit/gates/file-size-limit/check.sh +34 -0
  57. package/kit/gates/file-size-limit/gate.yml +9 -0
  58. package/kit/gates/file-size-limit/green/a.py +251 -0
  59. package/kit/gates/file-size-limit/green/b.py +251 -0
  60. package/kit/gates/file-size-limit/red/big.py +601 -0
  61. package/kit/gates/gate-has-samples/README.md +29 -0
  62. package/kit/gates/gate-has-samples/check.sh +48 -0
  63. package/kit/gates/gate-has-samples/gate.yml +9 -0
  64. package/kit/gates/gate-has-samples/green/.aqk.yml +10 -0
  65. package/kit/gates/gate-has-samples/green/gates/no-print-in-prod/check.sh +2 -0
  66. package/kit/gates/gate-has-samples/green/gates/no-print-in-prod/green/good.py +2 -0
  67. package/kit/gates/gate-has-samples/green/gates/no-print-in-prod/red/bad.py +1 -0
  68. package/kit/gates/gate-has-samples/red/.aqk.yml +10 -0
  69. package/kit/gates/gate-has-samples/red/gates/no-print-in-prod/check.sh +2 -0
  70. package/kit/gates/gates-are-runnable/README.md +23 -0
  71. package/kit/gates/gates-are-runnable/check.sh +35 -0
  72. package/kit/gates/gates-are-runnable/gate.yml +9 -0
  73. package/kit/gates/gates-are-runnable/green/.aqk.yml +9 -0
  74. package/kit/gates/gates-are-runnable/green/checks/lint.sh +2 -0
  75. package/kit/gates/gates-are-runnable/red/.aqk.yml +6 -0
  76. package/kit/gates/gates-run-in-ci/README.md +29 -0
  77. package/kit/gates/gates-run-in-ci/check.sh +42 -0
  78. package/kit/gates/gates-run-in-ci/gate.yml +12 -0
  79. package/kit/gates/gates-run-in-ci/green/.aqk.yml +6 -0
  80. package/kit/gates/gates-run-in-ci/green/.github/workflows/ci.yml +7 -0
  81. package/kit/gates/gates-run-in-ci/green/checks/lint.sh +2 -0
  82. package/kit/gates/gates-run-in-ci/red/.aqk.yml +6 -0
  83. package/kit/gates/gates-run-in-ci/red/.github/workflows/ci.yml +7 -0
  84. package/kit/gates/gates-run-in-ci/red/checks/lint.sh +2 -0
  85. package/kit/gates/lesson-has-outcome/README.md +37 -0
  86. package/kit/gates/lesson-has-outcome/check.sh +50 -0
  87. package/kit/gates/lesson-has-outcome/gate.yml +11 -0
  88. package/kit/gates/lesson-has-outcome/green/.aqk.yml +2 -0
  89. package/kit/gates/lesson-has-outcome/green/incidents/README.md +32 -0
  90. package/kit/gates/lesson-has-outcome/red/.aqk.yml +2 -0
  91. package/kit/gates/lesson-has-outcome/red/incidents/README.md +13 -0
  92. package/kit/gates/no-print-in-prod/README.md +44 -0
  93. package/kit/gates/no-print-in-prod/check.sh +36 -0
  94. package/kit/gates/no-print-in-prod/gate.yml +15 -0
  95. package/kit/gates/no-print-in-prod/green/docs.ts +15 -0
  96. package/kit/gates/no-print-in-prod/green/legacy.py +9 -0
  97. package/kit/gates/no-print-in-prod/green/main.go +8 -0
  98. package/kit/gates/no-print-in-prod/green/main.rs +4 -0
  99. package/kit/gates/no-print-in-prod/green/service.py +8 -0
  100. package/kit/gates/no-print-in-prod/red/main.go +8 -0
  101. package/kit/gates/no-print-in-prod/red/main.rs +4 -0
  102. package/kit/gates/no-print-in-prod/red/service.py +3 -0
  103. package/kit/gates/secrets-not-in-code/README.md +29 -0
  104. package/kit/gates/secrets-not-in-code/check.sh +18 -0
  105. package/kit/gates/secrets-not-in-code/gate.yml +9 -0
  106. package/kit/gates/secrets-not-in-code/green/settings.py +4 -0
  107. package/kit/gates/secrets-not-in-code/red/settings.py +2 -0
  108. package/kit/gates/swallowed-error/README.md +26 -0
  109. package/kit/gates/swallowed-error/check.sh +54 -0
  110. package/kit/gates/swallowed-error/gate.yml +12 -0
  111. package/kit/gates/swallowed-error/green/loader.py +11 -0
  112. package/kit/gates/swallowed-error/green/run.js +8 -0
  113. package/kit/gates/swallowed-error/red/loader.py +5 -0
  114. package/kit/gates/swallowed-error/red/run.js +3 -0
  115. package/kit/gates/todo-without-task/README.md +26 -0
  116. package/kit/gates/todo-without-task/check.sh +19 -0
  117. package/kit/gates/todo-without-task/gate.yml +12 -0
  118. package/kit/gates/todo-without-task/green/order.py +9 -0
  119. package/kit/gates/todo-without-task/red/order.py +8 -0
  120. package/kit/ratchet/ratchet.sh +62 -0
  121. package/kit/rules/general.md +55 -0
  122. package/kit/rules/security.md +33 -0
  123. package/kit/rules/testing.md +46 -0
  124. package/package.json +41 -0
  125. package/tool/commands/doctor.mjs +230 -0
  126. package/tool/commands/gates.mjs +445 -0
  127. package/tool/commands/project.mjs +316 -0
  128. package/tool/lib/core.mjs +98 -0
  129. package/tool/lib/manifest.mjs +140 -0
  130. package/tool/lib/repo.mjs +270 -0
  131. package/tool/lib/templates.mjs +187 -0
  132. package/tool/program.mjs +81 -0
  133. package/tool/selfcheck/conditional.sh +24 -0
  134. package/tool/selfcheck/gates.sh +127 -0
  135. package/tool/selfcheck/smoke.sh +539 -0
  136. package/tool/selfcheck/syntax.sh +23 -0
  137. package/tool/selfcheck/units.mjs +105 -0
@@ -0,0 +1,251 @@
1
+ def f():
2
+ x = 1
3
+ x = 1
4
+ x = 1
5
+ x = 1
6
+ x = 1
7
+ x = 1
8
+ x = 1
9
+ x = 1
10
+ x = 1
11
+ x = 1
12
+ x = 1
13
+ x = 1
14
+ x = 1
15
+ x = 1
16
+ x = 1
17
+ x = 1
18
+ x = 1
19
+ x = 1
20
+ x = 1
21
+ x = 1
22
+ x = 1
23
+ x = 1
24
+ x = 1
25
+ x = 1
26
+ x = 1
27
+ x = 1
28
+ x = 1
29
+ x = 1
30
+ x = 1
31
+ x = 1
32
+ x = 1
33
+ x = 1
34
+ x = 1
35
+ x = 1
36
+ x = 1
37
+ x = 1
38
+ x = 1
39
+ x = 1
40
+ x = 1
41
+ x = 1
42
+ x = 1
43
+ x = 1
44
+ x = 1
45
+ x = 1
46
+ x = 1
47
+ x = 1
48
+ x = 1
49
+ x = 1
50
+ x = 1
51
+ x = 1
52
+ x = 1
53
+ x = 1
54
+ x = 1
55
+ x = 1
56
+ x = 1
57
+ x = 1
58
+ x = 1
59
+ x = 1
60
+ x = 1
61
+ x = 1
62
+ x = 1
63
+ x = 1
64
+ x = 1
65
+ x = 1
66
+ x = 1
67
+ x = 1
68
+ x = 1
69
+ x = 1
70
+ x = 1
71
+ x = 1
72
+ x = 1
73
+ x = 1
74
+ x = 1
75
+ x = 1
76
+ x = 1
77
+ x = 1
78
+ x = 1
79
+ x = 1
80
+ x = 1
81
+ x = 1
82
+ x = 1
83
+ x = 1
84
+ x = 1
85
+ x = 1
86
+ x = 1
87
+ x = 1
88
+ x = 1
89
+ x = 1
90
+ x = 1
91
+ x = 1
92
+ x = 1
93
+ x = 1
94
+ x = 1
95
+ x = 1
96
+ x = 1
97
+ x = 1
98
+ x = 1
99
+ x = 1
100
+ x = 1
101
+ x = 1
102
+ x = 1
103
+ x = 1
104
+ x = 1
105
+ x = 1
106
+ x = 1
107
+ x = 1
108
+ x = 1
109
+ x = 1
110
+ x = 1
111
+ x = 1
112
+ x = 1
113
+ x = 1
114
+ x = 1
115
+ x = 1
116
+ x = 1
117
+ x = 1
118
+ x = 1
119
+ x = 1
120
+ x = 1
121
+ x = 1
122
+ x = 1
123
+ x = 1
124
+ x = 1
125
+ x = 1
126
+ x = 1
127
+ x = 1
128
+ x = 1
129
+ x = 1
130
+ x = 1
131
+ x = 1
132
+ x = 1
133
+ x = 1
134
+ x = 1
135
+ x = 1
136
+ x = 1
137
+ x = 1
138
+ x = 1
139
+ x = 1
140
+ x = 1
141
+ x = 1
142
+ x = 1
143
+ x = 1
144
+ x = 1
145
+ x = 1
146
+ x = 1
147
+ x = 1
148
+ x = 1
149
+ x = 1
150
+ x = 1
151
+ x = 1
152
+ x = 1
153
+ x = 1
154
+ x = 1
155
+ x = 1
156
+ x = 1
157
+ x = 1
158
+ x = 1
159
+ x = 1
160
+ x = 1
161
+ x = 1
162
+ x = 1
163
+ x = 1
164
+ x = 1
165
+ x = 1
166
+ x = 1
167
+ x = 1
168
+ x = 1
169
+ x = 1
170
+ x = 1
171
+ x = 1
172
+ x = 1
173
+ x = 1
174
+ x = 1
175
+ x = 1
176
+ x = 1
177
+ x = 1
178
+ x = 1
179
+ x = 1
180
+ x = 1
181
+ x = 1
182
+ x = 1
183
+ x = 1
184
+ x = 1
185
+ x = 1
186
+ x = 1
187
+ x = 1
188
+ x = 1
189
+ x = 1
190
+ x = 1
191
+ x = 1
192
+ x = 1
193
+ x = 1
194
+ x = 1
195
+ x = 1
196
+ x = 1
197
+ x = 1
198
+ x = 1
199
+ x = 1
200
+ x = 1
201
+ x = 1
202
+ x = 1
203
+ x = 1
204
+ x = 1
205
+ x = 1
206
+ x = 1
207
+ x = 1
208
+ x = 1
209
+ x = 1
210
+ x = 1
211
+ x = 1
212
+ x = 1
213
+ x = 1
214
+ x = 1
215
+ x = 1
216
+ x = 1
217
+ x = 1
218
+ x = 1
219
+ x = 1
220
+ x = 1
221
+ x = 1
222
+ x = 1
223
+ x = 1
224
+ x = 1
225
+ x = 1
226
+ x = 1
227
+ x = 1
228
+ x = 1
229
+ x = 1
230
+ x = 1
231
+ x = 1
232
+ x = 1
233
+ x = 1
234
+ x = 1
235
+ x = 1
236
+ x = 1
237
+ x = 1
238
+ x = 1
239
+ x = 1
240
+ x = 1
241
+ x = 1
242
+ x = 1
243
+ x = 1
244
+ x = 1
245
+ x = 1
246
+ x = 1
247
+ x = 1
248
+ x = 1
249
+ x = 1
250
+ x = 1
251
+ x = 1
@@ -0,0 +1,251 @@
1
+ def g():
2
+ y = 2
3
+ y = 2
4
+ y = 2
5
+ y = 2
6
+ y = 2
7
+ y = 2
8
+ y = 2
9
+ y = 2
10
+ y = 2
11
+ y = 2
12
+ y = 2
13
+ y = 2
14
+ y = 2
15
+ y = 2
16
+ y = 2
17
+ y = 2
18
+ y = 2
19
+ y = 2
20
+ y = 2
21
+ y = 2
22
+ y = 2
23
+ y = 2
24
+ y = 2
25
+ y = 2
26
+ y = 2
27
+ y = 2
28
+ y = 2
29
+ y = 2
30
+ y = 2
31
+ y = 2
32
+ y = 2
33
+ y = 2
34
+ y = 2
35
+ y = 2
36
+ y = 2
37
+ y = 2
38
+ y = 2
39
+ y = 2
40
+ y = 2
41
+ y = 2
42
+ y = 2
43
+ y = 2
44
+ y = 2
45
+ y = 2
46
+ y = 2
47
+ y = 2
48
+ y = 2
49
+ y = 2
50
+ y = 2
51
+ y = 2
52
+ y = 2
53
+ y = 2
54
+ y = 2
55
+ y = 2
56
+ y = 2
57
+ y = 2
58
+ y = 2
59
+ y = 2
60
+ y = 2
61
+ y = 2
62
+ y = 2
63
+ y = 2
64
+ y = 2
65
+ y = 2
66
+ y = 2
67
+ y = 2
68
+ y = 2
69
+ y = 2
70
+ y = 2
71
+ y = 2
72
+ y = 2
73
+ y = 2
74
+ y = 2
75
+ y = 2
76
+ y = 2
77
+ y = 2
78
+ y = 2
79
+ y = 2
80
+ y = 2
81
+ y = 2
82
+ y = 2
83
+ y = 2
84
+ y = 2
85
+ y = 2
86
+ y = 2
87
+ y = 2
88
+ y = 2
89
+ y = 2
90
+ y = 2
91
+ y = 2
92
+ y = 2
93
+ y = 2
94
+ y = 2
95
+ y = 2
96
+ y = 2
97
+ y = 2
98
+ y = 2
99
+ y = 2
100
+ y = 2
101
+ y = 2
102
+ y = 2
103
+ y = 2
104
+ y = 2
105
+ y = 2
106
+ y = 2
107
+ y = 2
108
+ y = 2
109
+ y = 2
110
+ y = 2
111
+ y = 2
112
+ y = 2
113
+ y = 2
114
+ y = 2
115
+ y = 2
116
+ y = 2
117
+ y = 2
118
+ y = 2
119
+ y = 2
120
+ y = 2
121
+ y = 2
122
+ y = 2
123
+ y = 2
124
+ y = 2
125
+ y = 2
126
+ y = 2
127
+ y = 2
128
+ y = 2
129
+ y = 2
130
+ y = 2
131
+ y = 2
132
+ y = 2
133
+ y = 2
134
+ y = 2
135
+ y = 2
136
+ y = 2
137
+ y = 2
138
+ y = 2
139
+ y = 2
140
+ y = 2
141
+ y = 2
142
+ y = 2
143
+ y = 2
144
+ y = 2
145
+ y = 2
146
+ y = 2
147
+ y = 2
148
+ y = 2
149
+ y = 2
150
+ y = 2
151
+ y = 2
152
+ y = 2
153
+ y = 2
154
+ y = 2
155
+ y = 2
156
+ y = 2
157
+ y = 2
158
+ y = 2
159
+ y = 2
160
+ y = 2
161
+ y = 2
162
+ y = 2
163
+ y = 2
164
+ y = 2
165
+ y = 2
166
+ y = 2
167
+ y = 2
168
+ y = 2
169
+ y = 2
170
+ y = 2
171
+ y = 2
172
+ y = 2
173
+ y = 2
174
+ y = 2
175
+ y = 2
176
+ y = 2
177
+ y = 2
178
+ y = 2
179
+ y = 2
180
+ y = 2
181
+ y = 2
182
+ y = 2
183
+ y = 2
184
+ y = 2
185
+ y = 2
186
+ y = 2
187
+ y = 2
188
+ y = 2
189
+ y = 2
190
+ y = 2
191
+ y = 2
192
+ y = 2
193
+ y = 2
194
+ y = 2
195
+ y = 2
196
+ y = 2
197
+ y = 2
198
+ y = 2
199
+ y = 2
200
+ y = 2
201
+ y = 2
202
+ y = 2
203
+ y = 2
204
+ y = 2
205
+ y = 2
206
+ y = 2
207
+ y = 2
208
+ y = 2
209
+ y = 2
210
+ y = 2
211
+ y = 2
212
+ y = 2
213
+ y = 2
214
+ y = 2
215
+ y = 2
216
+ y = 2
217
+ y = 2
218
+ y = 2
219
+ y = 2
220
+ y = 2
221
+ y = 2
222
+ y = 2
223
+ y = 2
224
+ y = 2
225
+ y = 2
226
+ y = 2
227
+ y = 2
228
+ y = 2
229
+ y = 2
230
+ y = 2
231
+ y = 2
232
+ y = 2
233
+ y = 2
234
+ y = 2
235
+ y = 2
236
+ y = 2
237
+ y = 2
238
+ y = 2
239
+ y = 2
240
+ y = 2
241
+ y = 2
242
+ y = 2
243
+ y = 2
244
+ y = 2
245
+ y = 2
246
+ y = 2
247
+ y = 2
248
+ y = 2
249
+ y = 2
250
+ y = 2
251
+ y = 2