@namewta/speculo 1.0.17 → 1.0.19

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 (88) hide show
  1. package/package.json +5 -2
  2. package/template/canonical/canonical-specdev-goal-plan.md +2 -2
  3. package/template/canonical/canonical-specdev-grill-with-docs.md +2 -2
  4. package/template/canonical/canonical-specdev-spec.md +11 -136
  5. package/template/canonical/canonical-specdev-tickets.md +2 -2
  6. package/template/canonical/canonical-specdev-wayfinder.md +2 -2
  7. package/template/commands/handoff.md +16 -0
  8. package/template/commands/retro.md +1 -1
  9. package/template/skills/github-npm-ops/references/issue-pr-triage.md +8 -0
  10. package/template/skills/speculo-retro/references/entry-procedure.md +19 -3
  11. package/template/skills/speculo-retro/references/issue-drafting-sop.md +3 -1
  12. package/template/workflows/learning/A-archive/A-archive.md +2 -5
  13. package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +2 -5
  14. package/template/workflows/learning/C-consolidate/C-consolidate.md +2 -5
  15. package/template/workflows/learning/G-goal/G-goal.md +5 -23
  16. package/template/workflows/learning/H-homework/H-homework.md +2 -5
  17. package/template/workflows/learning/I-init-setup/I-init-setup.md +4 -9
  18. package/template/workflows/learning/L-lesson/L-lesson.md +2 -5
  19. package/template/workflows/learning/Q-question/Q-question.md +16 -8
  20. package/template/workflows/learning/Q-question/inquiry-template.md +2 -0
  21. package/template/workflows/learning/Q-question/tools/validate-inquiry.mjs +112 -0
  22. package/template/workflows/learning/R-review/R-review.md +3 -6
  23. package/template/workflows/learning/README.md +2 -2
  24. package/template/workflows/learning/common/rules/knowledge-organization.md +1 -1
  25. package/template/workflows/learning/common/rules/mastery-policy.md +1 -1
  26. package/template/workflows/learning/common/skills/socratic-questioning/SKILL.md +1 -1
  27. package/template/workflows/ops/D-project-deploy/D-project-deploy.md +15 -9
  28. package/template/workflows/ops/H-host-manage/H-host-manage.md +14 -21
  29. package/template/workflows/ops/H-host-manage/references/host-profiles.md +21 -0
  30. package/template/workflows/ops/I-initialize/I-initialize.md +7 -7
  31. package/template/workflows/ops/INDEX.md +20 -16
  32. package/template/workflows/ops/README.md +29 -73
  33. package/template/workflows/ops/S-server-connect/S-server-connect.md +28 -0
  34. package/template/workflows/ops/V-inventory-view/V-inventory-view.md +30 -0
  35. package/template/workflows/ops/common/CAPABILITIES.md +22 -15
  36. package/template/workflows/ops/common/WORKSPACE-USAGE.md +78 -0
  37. package/template/workflows/ops/common/examples/task-host.example.json +64 -0
  38. package/template/workflows/ops/common/rules/activation-and-memory.md +5 -3
  39. package/template/workflows/ops/common/rules/deployment-layout.md +51 -0
  40. package/template/workflows/ops/common/rules/inventory-and-records.md +55 -0
  41. package/template/workflows/ops/common/rules/recovery.md +6 -0
  42. package/template/workflows/ops/common/rules/research-and-decisions.md +18 -0
  43. package/template/workflows/ops/common/rules/server-onboarding.md +27 -0
  44. package/template/workflows/ops/common/rules/workspace-and-authorization.md +39 -0
  45. package/template/workflows/ops/common/schemas/fleet-view.schema.json +487 -0
  46. package/template/workflows/ops/common/schemas/server-check.schema.json +95 -0
  47. package/template/workflows/ops/common/schemas/task-request.schema.json +138 -0
  48. package/template/workflows/ops/common/templates/FLEET.html +61 -0
  49. package/template/workflows/ops/common/tests/test_ops_workspace.mjs +246 -0
  50. package/template/workflows/ops/common/tools/ops.mjs +5 -3
  51. package/template/workflows/ops/common/tools/opslib/fleet.mjs +155 -0
  52. package/template/workflows/ops/common/tools/opslib/server_checks.mjs +149 -0
  53. package/template/workflows/ops/common/tools/opslib/tasks.mjs +313 -0
  54. package/template/workflows/ops/common/tools/opslib/workspace.mjs +107 -0
  55. package/template/workflows/ops/common/tools/opslib/workspace_cli.mjs +80 -0
  56. package/template/workflows/ops/common/tools/validate-ops.mjs +11 -8
  57. package/template/workflows/ops/manifest.json +43 -7
  58. package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +13 -68
  59. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +11 -123
  60. package/template/workflows/person/S-steelman-deliberation/references/state-and-publication.md +86 -0
  61. package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +2 -17
  62. package/template/workflows/specdev/A-archive-and-consolidate/consolidation-interview.md +10 -1
  63. package/template/workflows/specdev/C-code-review/C-code-review.md +3 -14
  64. package/template/workflows/specdev/C-code-review/code-review-template.md +4 -0
  65. package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +1 -23
  66. package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +2 -2
  67. package/template/workflows/specdev/I-implement/I-implement.md +2 -2
  68. package/template/workflows/specdev/I-implement/evidence-template.md +8 -0
  69. package/template/workflows/specdev/I-implement/references/implementation-procedure.md +8 -42
  70. package/template/workflows/specdev/I-init-setup/I-init-setup.md +16 -117
  71. package/template/workflows/specdev/I-init-setup/references/first-setup.md +46 -0
  72. package/template/workflows/specdev/L-learn-change/L-learn-change.md +11 -89
  73. package/template/workflows/specdev/L-learn-change/references/lesson-format.md +47 -0
  74. package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +2 -2
  75. package/template/workflows/specdev/P-prototype/P-prototype.md +2 -16
  76. package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +19 -57
  77. package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +2 -1
  78. package/template/workflows/specdev/R-review-architecture/references/selected-design.md +23 -0
  79. package/template/workflows/specdev/R-review-architecture/review-rubric.md +2 -2
  80. package/template/workflows/specdev/README.md +4 -4
  81. package/template/workflows/specdev/S-spec/S-spec.md +11 -138
  82. package/template/workflows/specdev/T-tickets/T-tickets.md +2 -2
  83. package/template/workflows/specdev/T-triage/T-triage.md +21 -136
  84. package/template/workflows/specdev/T-triage/intake-protocol.md +19 -0
  85. package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +2 -2
  86. package/template/workflows/specdev/common/rules/deployment-handoff.md +23 -0
  87. package/template/workflows/specdev/common/skills/code-review/SKILL.md +5 -4
  88. package/template/workflows/specdev/common/skills/code-review/references/result-reuse.md +15 -0
@@ -0,0 +1,487 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:speculo:ops:fleet-view:v1",
4
+ "type": "object",
5
+ "properties": {
6
+ "schema_version": {
7
+ "const": 1
8
+ },
9
+ "artifact": {
10
+ "const": "ops-fleet-view"
11
+ },
12
+ "generated_at": {
13
+ "type": "string",
14
+ "format": "date-time"
15
+ },
16
+ "controller_id": {
17
+ "type": "string",
18
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
19
+ "maxLength": 80
20
+ },
21
+ "source_revision": {
22
+ "type": "integer",
23
+ "minimum": 0
24
+ },
25
+ "source_digest": {
26
+ "type": "string",
27
+ "pattern": "^[a-f0-9]{64}$"
28
+ },
29
+ "stale_hours": {
30
+ "type": "number",
31
+ "exclusiveMinimum": 0,
32
+ "maximum": 8760
33
+ },
34
+ "notice": {
35
+ "type": "string"
36
+ },
37
+ "servers": {
38
+ "type": "array",
39
+ "items": {
40
+ "type": "object",
41
+ "properties": {
42
+ "server_id": {
43
+ "type": "string",
44
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
45
+ "maxLength": 80
46
+ },
47
+ "name": {
48
+ "type": "string"
49
+ },
50
+ "platform": {
51
+ "type": "string"
52
+ },
53
+ "transport": {
54
+ "enum": [
55
+ "local",
56
+ "ssh"
57
+ ]
58
+ },
59
+ "address": {
60
+ "type": "string"
61
+ },
62
+ "port": {
63
+ "type": [
64
+ "integer",
65
+ "null"
66
+ ],
67
+ "minimum": 1,
68
+ "maximum": 65535
69
+ },
70
+ "root": {
71
+ "type": "string"
72
+ },
73
+ "readiness": {
74
+ "enum": [
75
+ "unknown",
76
+ "stale",
77
+ "blocked",
78
+ "ready"
79
+ ]
80
+ },
81
+ "profile": {
82
+ "enum": [
83
+ null,
84
+ "base",
85
+ "compose",
86
+ "native"
87
+ ]
88
+ },
89
+ "checked_at": {
90
+ "type": [
91
+ "string",
92
+ "null"
93
+ ]
94
+ },
95
+ "checks": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "object",
99
+ "properties": {
100
+ "id": {
101
+ "type": "string"
102
+ },
103
+ "status": {
104
+ "enum": [
105
+ "pass",
106
+ "fail",
107
+ "warn",
108
+ "unknown",
109
+ "not-applicable"
110
+ ]
111
+ },
112
+ "required": {
113
+ "type": "boolean"
114
+ }
115
+ },
116
+ "required": [
117
+ "id",
118
+ "status",
119
+ "required"
120
+ ],
121
+ "additionalProperties": false
122
+ }
123
+ },
124
+ "project_ids": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "string",
128
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
129
+ "maxLength": 80
130
+ },
131
+ "uniqueItems": true
132
+ },
133
+ "deployment_ids": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "string",
137
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
138
+ "maxLength": 80
139
+ },
140
+ "uniqueItems": true
141
+ },
142
+ "host_services": {
143
+ "type": "array",
144
+ "items": {
145
+ "type": "object",
146
+ "properties": {
147
+ "service_id": {
148
+ "type": "string",
149
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
150
+ "maxLength": 80
151
+ },
152
+ "kind": {
153
+ "type": "string"
154
+ },
155
+ "unit": {
156
+ "type": "string"
157
+ },
158
+ "port": {
159
+ "type": [
160
+ "integer",
161
+ "null"
162
+ ]
163
+ }
164
+ },
165
+ "required": [
166
+ "service_id",
167
+ "kind",
168
+ "unit",
169
+ "port"
170
+ ],
171
+ "additionalProperties": false
172
+ }
173
+ }
174
+ },
175
+ "required": [
176
+ "server_id",
177
+ "name",
178
+ "platform",
179
+ "transport",
180
+ "address",
181
+ "port",
182
+ "root",
183
+ "readiness",
184
+ "profile",
185
+ "checked_at",
186
+ "checks",
187
+ "project_ids",
188
+ "deployment_ids",
189
+ "host_services"
190
+ ],
191
+ "additionalProperties": false
192
+ }
193
+ },
194
+ "projects": {
195
+ "type": "array",
196
+ "items": {
197
+ "type": "object",
198
+ "properties": {
199
+ "project_id": {
200
+ "type": "string",
201
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
202
+ "maxLength": 80
203
+ },
204
+ "kind": {
205
+ "type": "string"
206
+ },
207
+ "service_type": {
208
+ "type": "string"
209
+ },
210
+ "server_ids": {
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string",
214
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
215
+ "maxLength": 80
216
+ },
217
+ "uniqueItems": true
218
+ },
219
+ "deployment_ids": {
220
+ "type": "array",
221
+ "items": {
222
+ "type": "string",
223
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
224
+ "maxLength": 80
225
+ },
226
+ "uniqueItems": true
227
+ },
228
+ "name": {
229
+ "type": "string"
230
+ }
231
+ },
232
+ "required": [
233
+ "project_id",
234
+ "name",
235
+ "kind",
236
+ "service_type",
237
+ "server_ids",
238
+ "deployment_ids"
239
+ ],
240
+ "additionalProperties": false
241
+ }
242
+ },
243
+ "deployments": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "object",
247
+ "properties": {
248
+ "deployment_id": {
249
+ "type": "string",
250
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
251
+ "maxLength": 80
252
+ },
253
+ "project_id": {
254
+ "type": "string",
255
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
256
+ "maxLength": 80
257
+ },
258
+ "server_id": {
259
+ "type": "string",
260
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
261
+ "maxLength": 80
262
+ },
263
+ "environment": {
264
+ "type": "string"
265
+ },
266
+ "instance": {
267
+ "type": "string"
268
+ },
269
+ "method": {
270
+ "type": "string"
271
+ },
272
+ "root": {
273
+ "type": "string"
274
+ },
275
+ "status": {
276
+ "type": "string"
277
+ },
278
+ "desired_version": {
279
+ "type": "string"
280
+ },
281
+ "observed_version": {
282
+ "type": [
283
+ "string",
284
+ "null"
285
+ ]
286
+ },
287
+ "updated_at": {
288
+ "type": [
289
+ "string",
290
+ "null"
291
+ ]
292
+ },
293
+ "run_id": {
294
+ "type": [
295
+ "string",
296
+ "null"
297
+ ]
298
+ }
299
+ },
300
+ "required": [
301
+ "deployment_id",
302
+ "project_id",
303
+ "server_id",
304
+ "environment",
305
+ "instance",
306
+ "method",
307
+ "root",
308
+ "status",
309
+ "desired_version",
310
+ "observed_version",
311
+ "updated_at",
312
+ "run_id"
313
+ ],
314
+ "additionalProperties": false
315
+ }
316
+ },
317
+ "bindings": {
318
+ "type": "array",
319
+ "items": {
320
+ "type": "object",
321
+ "properties": {
322
+ "binding_id": {
323
+ "type": "string",
324
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
325
+ "maxLength": 80
326
+ },
327
+ "consumer_deployment_id": {
328
+ "type": "string",
329
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
330
+ "maxLength": 80
331
+ },
332
+ "provider_deployment_id": {
333
+ "type": [
334
+ "string",
335
+ "null"
336
+ ]
337
+ },
338
+ "mode": {
339
+ "type": "string"
340
+ },
341
+ "status": {
342
+ "type": "string"
343
+ }
344
+ },
345
+ "required": [
346
+ "binding_id",
347
+ "consumer_deployment_id",
348
+ "provider_deployment_id",
349
+ "mode",
350
+ "status"
351
+ ],
352
+ "additionalProperties": false
353
+ }
354
+ },
355
+ "releases": {
356
+ "type": "array",
357
+ "items": {
358
+ "type": "object",
359
+ "properties": {
360
+ "run_id": {
361
+ "type": "string",
362
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
363
+ "maxLength": 80
364
+ },
365
+ "worker": {
366
+ "type": "string"
367
+ },
368
+ "status": {
369
+ "type": "string"
370
+ },
371
+ "server_ids": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "string",
375
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
376
+ "maxLength": 80
377
+ },
378
+ "uniqueItems": true
379
+ },
380
+ "deployment_ids": {
381
+ "type": "array",
382
+ "items": {
383
+ "type": "string",
384
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
385
+ "maxLength": 80
386
+ },
387
+ "uniqueItems": true
388
+ },
389
+ "updated_at": {
390
+ "type": [
391
+ "string",
392
+ "null"
393
+ ]
394
+ }
395
+ },
396
+ "required": [
397
+ "run_id",
398
+ "worker",
399
+ "status",
400
+ "server_ids",
401
+ "deployment_ids",
402
+ "updated_at"
403
+ ],
404
+ "additionalProperties": false
405
+ }
406
+ },
407
+ "tasks": {
408
+ "type": "array",
409
+ "items": {
410
+ "type": "object",
411
+ "properties": {
412
+ "task_id": {
413
+ "type": "string",
414
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
415
+ "maxLength": 80
416
+ },
417
+ "scope": {
418
+ "type": "string"
419
+ },
420
+ "server_ids": {
421
+ "type": "array",
422
+ "items": {
423
+ "type": "string",
424
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
425
+ "maxLength": 80
426
+ },
427
+ "uniqueItems": true
428
+ },
429
+ "project_ids": {
430
+ "type": "array",
431
+ "items": {
432
+ "type": "string",
433
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
434
+ "maxLength": 80
435
+ },
436
+ "uniqueItems": true
437
+ },
438
+ "status": {
439
+ "type": "string"
440
+ },
441
+ "updated_at": {
442
+ "type": [
443
+ "string",
444
+ "null"
445
+ ]
446
+ },
447
+ "run_ids": {
448
+ "type": "array",
449
+ "items": {
450
+ "type": "string",
451
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
452
+ "maxLength": 80
453
+ },
454
+ "uniqueItems": true
455
+ }
456
+ },
457
+ "required": [
458
+ "task_id",
459
+ "scope",
460
+ "server_ids",
461
+ "project_ids",
462
+ "status",
463
+ "updated_at",
464
+ "run_ids"
465
+ ],
466
+ "additionalProperties": false
467
+ }
468
+ }
469
+ },
470
+ "required": [
471
+ "schema_version",
472
+ "artifact",
473
+ "generated_at",
474
+ "controller_id",
475
+ "source_revision",
476
+ "source_digest",
477
+ "stale_hours",
478
+ "notice",
479
+ "servers",
480
+ "projects",
481
+ "deployments",
482
+ "bindings",
483
+ "releases",
484
+ "tasks"
485
+ ],
486
+ "additionalProperties": false
487
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:speculo:ops:server-check:v1",
4
+ "type": "object",
5
+ "properties": {
6
+ "schema_version": {
7
+ "const": 1
8
+ },
9
+ "artifact": {
10
+ "const": "ops-server-check"
11
+ },
12
+ "host_id": {
13
+ "type": "string",
14
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
15
+ "maxLength": 80
16
+ },
17
+ "profile": {
18
+ "enum": [
19
+ "base",
20
+ "compose",
21
+ "native"
22
+ ]
23
+ },
24
+ "checked_at": {
25
+ "type": "string",
26
+ "format": "date-time"
27
+ },
28
+ "host_digest": {
29
+ "type": "string",
30
+ "pattern": "^[a-f0-9]{64}$"
31
+ },
32
+ "checks": {
33
+ "type": "array",
34
+ "minItems": 16,
35
+ "maxItems": 16,
36
+ "items": {
37
+ "type": "object",
38
+ "properties": {
39
+ "id": {
40
+ "enum": [
41
+ "registration",
42
+ "ssh-publickey",
43
+ "machine-identity",
44
+ "linux",
45
+ "node-runtime",
46
+ "deployment-root",
47
+ "disk-space",
48
+ "memory",
49
+ "docker-daemon",
50
+ "compose-version",
51
+ "docker-data-root",
52
+ "least-privilege",
53
+ "time-sync",
54
+ "firewall",
55
+ "egress",
56
+ "backup-restore"
57
+ ]
58
+ },
59
+ "status": {
60
+ "enum": [
61
+ "pass",
62
+ "fail",
63
+ "warn",
64
+ "unknown",
65
+ "not-applicable"
66
+ ]
67
+ },
68
+ "required": {
69
+ "type": "boolean"
70
+ },
71
+ "detail": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ "required": [
76
+ "id",
77
+ "status",
78
+ "required",
79
+ "detail"
80
+ ],
81
+ "additionalProperties": false
82
+ }
83
+ }
84
+ },
85
+ "required": [
86
+ "schema_version",
87
+ "artifact",
88
+ "host_id",
89
+ "profile",
90
+ "checked_at",
91
+ "host_digest",
92
+ "checks"
93
+ ],
94
+ "additionalProperties": false
95
+ }