packet-tracer-skill 0.2.2 → 0.3.0
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/CHANGELOG.md +424 -42
- package/README.md +535 -250
- package/SKILL.md +337 -262
- package/bin/packet-tracer-skill.js +29 -2
- package/docs/automation-controller-proof.md +35 -0
- package/docs/curated-donor-registry.md +11 -0
- package/docs/generate-ready-pilot-design.md +30 -0
- package/docs/github-launch-ops-0.2.3.md +37 -0
- package/docs/github-metadata.md +6 -4
- package/docs/hero-demo-plan.md +1 -1
- package/docs/home-iot-donor-proof.md +4 -4
- package/docs/industrial-programming-proof.md +48 -0
- package/docs/ipv4-routing-management-proof.md +37 -0
- package/docs/l2-resiliency-bgp-proof.md +60 -0
- package/docs/l2-security-qos-proof.md +59 -0
- package/docs/packet-tracer-feature-gap-atlas.md +174 -17
- package/docs/post-launch-follow-up.md +9 -5
- package/docs/proof-readiness-dashboard.md +69 -0
- package/docs/publish-preview-roadmap.md +6 -5
- package/docs/release-checklist.md +27 -13
- package/docs/release-notes-0.2.2.md +1 -1
- package/docs/release-notes-0.2.3.md +59 -0
- package/docs/release-notes-0.2.4.md +20 -0
- package/docs/runtime-truth.md +33 -8
- package/docs/security-edge-deepening-proof.md +65 -0
- package/docs/voice-collaboration-proof.md +38 -0
- package/docs/wan-security-donor-proof.md +20 -3
- package/examples/README.md +98 -69
- package/examples/complex_campus_master_edit_v4.inventory.json +12 -2
- package/examples/gallery.md +94 -6
- package/examples/home_iot_cli_edit_v1.inventory.json +11 -2
- package/examples/index.json +932 -4
- package/examples/local-sample-evidence.json +24 -0
- package/examples/proof-cards.json +117 -0
- package/examples/service_heavy_cli_edit_v1.inventory.json +11 -2
- package/package.json +60 -44
- package/pytest.ini +9 -0
- package/references/packettracer-feature-atlas.json +67 -17
- package/references/packettracer-sample-catalog.json +45287 -4525
- package/references/packettracer-sample-catalog.md +599 -259
- package/references/proof-readiness-candidates.json +352 -0
- package/scripts/build_examples_index.py +228 -35
- package/scripts/build_sample_catalog.py +24 -44
- package/scripts/corpus_runner.py +430 -0
- package/scripts/coverage_matrix.py +1842 -1319
- package/scripts/donor_cache.py +354 -0
- package/scripts/donor_diagnostics.py +3 -1
- package/scripts/feature_atlas.py +65 -1
- package/scripts/generate_pkt.py +8762 -4070
- package/scripts/intent_parser.py +2242 -1138
- package/scripts/local_donors.py +340 -0
- package/scripts/packet_tracer_env.py +846 -391
- package/scripts/pkt_annotate.py +218 -0
- package/scripts/pkt_codec.py +420 -181
- package/scripts/pkt_editor.py +2405 -1226
- package/scripts/pkt_transformer.py +1072 -727
- package/scripts/pkt_verify.py +461 -0
- package/scripts/remote_search.py +197 -21
- package/scripts/runtime_doctor.py +80 -29
- package/scripts/sample_catalog.py +1372 -1195
- package/scripts/twofish_diagnostics.py +48 -31
- package/scripts/usage_ledger.py +218 -0
- package/scripts/vendor/README.md +44 -37
- package/scripts/vendor/twofish_pure.py +321 -0
- package/scripts/workspace_repair.py +548 -508
- package/templates/pt900/donors/README.md +15 -0
package/examples/index.json
CHANGED
|
@@ -1,6 +1,894 @@
|
|
|
1
1
|
{
|
|
2
|
+
"schema_version": "examples.truth.v2",
|
|
3
|
+
"release_line": "0.2.4 candidate proof surface",
|
|
4
|
+
"support_truth": {
|
|
5
|
+
"generate_ready": 0,
|
|
6
|
+
"policy": "Example artifacts can be known-working, edit-proven, or donor-backed-ready without making broad generation ready."
|
|
7
|
+
},
|
|
8
|
+
"showcase_examples": [
|
|
9
|
+
{
|
|
10
|
+
"schema_version": "examples.truth.v2",
|
|
11
|
+
"artifact_type": "showcase_example",
|
|
12
|
+
"name": "complex_campus_master_edit_v4",
|
|
13
|
+
"title": "Complex Campus",
|
|
14
|
+
"scenario_family": "campus",
|
|
15
|
+
"summary": "Management VLAN, Telnet, ACL, DNS, email, AAA, and multi-SSID wireless campus edit.",
|
|
16
|
+
"capabilities": [
|
|
17
|
+
"management_vlan",
|
|
18
|
+
"telnet",
|
|
19
|
+
"acl",
|
|
20
|
+
"server_dns",
|
|
21
|
+
"server_email",
|
|
22
|
+
"server_aaa",
|
|
23
|
+
"wireless_mutation"
|
|
24
|
+
],
|
|
25
|
+
"primary_capabilities": [
|
|
26
|
+
"management_vlan",
|
|
27
|
+
"telnet",
|
|
28
|
+
"acl",
|
|
29
|
+
"server_dns",
|
|
30
|
+
"server_email",
|
|
31
|
+
"server_aaa",
|
|
32
|
+
"wireless_mutation"
|
|
33
|
+
],
|
|
34
|
+
"acceptance_rank": 3,
|
|
35
|
+
"acceptance_label": "known_working_example",
|
|
36
|
+
"acceptance_excerpt": "known_working_example | donor=donor-backed | capabilities=management_vlan, telnet, acl",
|
|
37
|
+
"donor_origin": "donor-backed",
|
|
38
|
+
"fixture_name": "campus_core_complex",
|
|
39
|
+
"matrix_excerpt": "campus_core_complex | known_working_example | family=campus",
|
|
40
|
+
"parity_excerpt": "management_vlan=known_working_example, telnet=known_working_example, acl=known_working_example",
|
|
41
|
+
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
42
|
+
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
43
|
+
"artifact_policy": {
|
|
44
|
+
"commit_pkt_binary": false,
|
|
45
|
+
"commit_inventory_json": true,
|
|
46
|
+
"commit_screenshots": true,
|
|
47
|
+
"raw_source_public": false
|
|
48
|
+
},
|
|
49
|
+
"maturity_summary": {
|
|
50
|
+
"atlas_status": "known_working_example",
|
|
51
|
+
"example_status": "known_working_example",
|
|
52
|
+
"donor_backed_ready": true,
|
|
53
|
+
"generate_ready": false
|
|
54
|
+
},
|
|
55
|
+
"inventory_json": "examples/complex_campus_master_edit_v4.inventory.json",
|
|
56
|
+
"screenshots": [
|
|
57
|
+
"examples/screenshots/complex_campus_master_edit_v4.png"
|
|
58
|
+
],
|
|
59
|
+
"screenshot_count": 1,
|
|
60
|
+
"screenshot": "examples/screenshots/complex_campus_master_edit_v4.png",
|
|
61
|
+
"detail_images": [],
|
|
62
|
+
"preview": "examples/previews/complex_campus_master_edit_v4.svg",
|
|
63
|
+
"image": "examples/screenshots/complex_campus_master_edit_v4.png"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"schema_version": "examples.truth.v2",
|
|
67
|
+
"artifact_type": "showcase_example",
|
|
68
|
+
"name": "home_iot_cli_edit_v1",
|
|
69
|
+
"title": "Home IoT",
|
|
70
|
+
"scenario_family": "home_iot",
|
|
71
|
+
"summary": "Home gateway and IoT device onboarding with donor-backed registration state and constrained wireless readiness.",
|
|
72
|
+
"capabilities": [
|
|
73
|
+
"iot",
|
|
74
|
+
"iot_registration",
|
|
75
|
+
"wireless_ap"
|
|
76
|
+
],
|
|
77
|
+
"primary_capabilities": [
|
|
78
|
+
"iot",
|
|
79
|
+
"iot_registration",
|
|
80
|
+
"wireless_ap"
|
|
81
|
+
],
|
|
82
|
+
"acceptance_rank": 3,
|
|
83
|
+
"acceptance_label": "known_working_example",
|
|
84
|
+
"acceptance_excerpt": "known_working_example | donor=donor-backed | capabilities=iot, iot_registration, wireless_ap | mode=donor-backed constrained edit",
|
|
85
|
+
"donor_origin": "donor-backed",
|
|
86
|
+
"fixture_name": "home_iot_complex",
|
|
87
|
+
"matrix_excerpt": "home_iot_complex | known_working_example | family=home_iot",
|
|
88
|
+
"parity_excerpt": "iot=known_working_example, iot_registration=donor_backed_ready, wireless_ap=known_working_example",
|
|
89
|
+
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
90
|
+
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
91
|
+
"artifact_policy": {
|
|
92
|
+
"commit_pkt_binary": false,
|
|
93
|
+
"commit_inventory_json": true,
|
|
94
|
+
"commit_screenshots": true,
|
|
95
|
+
"raw_source_public": false
|
|
96
|
+
},
|
|
97
|
+
"maturity_summary": {
|
|
98
|
+
"atlas_status": "donor_backed_ready",
|
|
99
|
+
"example_status": "known_working_example",
|
|
100
|
+
"donor_backed_ready": true,
|
|
101
|
+
"generate_ready": false
|
|
102
|
+
},
|
|
103
|
+
"inventory_json": "examples/home_iot_cli_edit_v1.inventory.json",
|
|
104
|
+
"screenshots": [
|
|
105
|
+
"examples/screenshots/home_iot_cli_edit_v1.png"
|
|
106
|
+
],
|
|
107
|
+
"screenshot_count": 1,
|
|
108
|
+
"screenshot": "examples/screenshots/home_iot_cli_edit_v1.png",
|
|
109
|
+
"detail_images": [],
|
|
110
|
+
"preview": "examples/previews/home_iot_cli_edit_v1.svg",
|
|
111
|
+
"image": "examples/screenshots/home_iot_cli_edit_v1.png"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"schema_version": "examples.truth.v2",
|
|
115
|
+
"artifact_type": "showcase_example",
|
|
116
|
+
"name": "service_heavy_cli_edit_v1",
|
|
117
|
+
"title": "Service Heavy",
|
|
118
|
+
"scenario_family": "service_heavy",
|
|
119
|
+
"summary": "Service-rich server lab with DNS, DHCP, FTP, email, syslog, AAA, and detailed service metadata.",
|
|
120
|
+
"capabilities": [
|
|
121
|
+
"server_dns",
|
|
122
|
+
"server_dhcp",
|
|
123
|
+
"server_ftp",
|
|
124
|
+
"server_email",
|
|
125
|
+
"server_syslog",
|
|
126
|
+
"server_aaa"
|
|
127
|
+
],
|
|
128
|
+
"primary_capabilities": [
|
|
129
|
+
"server_dns",
|
|
130
|
+
"server_dhcp",
|
|
131
|
+
"server_ftp",
|
|
132
|
+
"server_email",
|
|
133
|
+
"server_syslog",
|
|
134
|
+
"server_aaa"
|
|
135
|
+
],
|
|
136
|
+
"acceptance_rank": 3,
|
|
137
|
+
"acceptance_label": "known_working_example",
|
|
138
|
+
"acceptance_excerpt": "known_working_example | donor=donor-backed | capabilities=server_dns, server_dhcp, server_ftp",
|
|
139
|
+
"donor_origin": "donor-backed",
|
|
140
|
+
"fixture_name": "service_heavy_complex",
|
|
141
|
+
"matrix_excerpt": "service_heavy_complex | known_working_example | family=service_heavy",
|
|
142
|
+
"parity_excerpt": "server_dns=known_working_example, server_dhcp=known_working_example, server_ftp=known_working_example",
|
|
143
|
+
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
144
|
+
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
145
|
+
"artifact_policy": {
|
|
146
|
+
"commit_pkt_binary": false,
|
|
147
|
+
"commit_inventory_json": true,
|
|
148
|
+
"commit_screenshots": true,
|
|
149
|
+
"raw_source_public": false
|
|
150
|
+
},
|
|
151
|
+
"maturity_summary": {
|
|
152
|
+
"atlas_status": "known_working_example",
|
|
153
|
+
"example_status": "known_working_example",
|
|
154
|
+
"donor_backed_ready": true,
|
|
155
|
+
"generate_ready": false
|
|
156
|
+
},
|
|
157
|
+
"inventory_json": "examples/service_heavy_cli_edit_v1.inventory.json",
|
|
158
|
+
"screenshots": [
|
|
159
|
+
"examples/screenshots/service_heavy_cli_edit_v1.png",
|
|
160
|
+
"examples/screenshots/service_heavy_cli_edit_v1_dhcp.png",
|
|
161
|
+
"examples/screenshots/service_heavy_cli_edit_v1_dns.png",
|
|
162
|
+
"examples/screenshots/service_heavy_cli_edit_v1_ftp.png"
|
|
163
|
+
],
|
|
164
|
+
"screenshot_count": 4,
|
|
165
|
+
"screenshot": "examples/screenshots/service_heavy_cli_edit_v1.png",
|
|
166
|
+
"detail_images": [
|
|
167
|
+
"examples/screenshots/service_heavy_cli_edit_v1_dhcp.png",
|
|
168
|
+
"examples/screenshots/service_heavy_cli_edit_v1_dns.png",
|
|
169
|
+
"examples/screenshots/service_heavy_cli_edit_v1_ftp.png"
|
|
170
|
+
],
|
|
171
|
+
"preview": "examples/previews/service_heavy_cli_edit_v1.svg",
|
|
172
|
+
"image": "examples/screenshots/service_heavy_cli_edit_v1.png"
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"proof_cards": [
|
|
176
|
+
{
|
|
177
|
+
"schema_version": "examples.truth.v2",
|
|
178
|
+
"artifact_type": "proof_card",
|
|
179
|
+
"name": "ipv4_routing_management_edit_proof",
|
|
180
|
+
"title": "IPv4 Routing / NAT / IOS Management",
|
|
181
|
+
"scenario_family": "ipv4_routing_management",
|
|
182
|
+
"support_level": "edit_proven",
|
|
183
|
+
"capabilities": [
|
|
184
|
+
"ospfv2",
|
|
185
|
+
"eigrp_ipv4",
|
|
186
|
+
"ripv2",
|
|
187
|
+
"static_route",
|
|
188
|
+
"default_route",
|
|
189
|
+
"dhcp_relay",
|
|
190
|
+
"nat_static",
|
|
191
|
+
"nat_dynamic",
|
|
192
|
+
"pat",
|
|
193
|
+
"ssh_ios",
|
|
194
|
+
"ntp_ios",
|
|
195
|
+
"syslog_ios"
|
|
196
|
+
],
|
|
197
|
+
"explicit_command": "set R1 ospfv2 1 network 10.0.0.0 wildcard 0.0.0.255 area 0",
|
|
198
|
+
"try_command": "set R1 ospfv2 1 network 10.0.0.0 wildcard 0.0.0.255 area 0",
|
|
199
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
200
|
+
"parity_excerpt": "explicit IPv4 routing/NAT/IOS-management commands are edit_proven; generate_ready=false",
|
|
201
|
+
"refusal_boundary": "No topology synthesis, route convergence proof, ACL object inference, or broad NAT design generation.",
|
|
202
|
+
"does_not_claim": "No topology synthesis, route convergence proof, ACL object inference, or broad NAT design generation.",
|
|
203
|
+
"maturity_summary": {
|
|
204
|
+
"atlas_status": "edit_proven",
|
|
205
|
+
"example_status": "proof_card",
|
|
206
|
+
"donor_backed_ready": false,
|
|
207
|
+
"generate_ready": false
|
|
208
|
+
},
|
|
209
|
+
"artifact_policy": {
|
|
210
|
+
"commit_pkt_binary": false,
|
|
211
|
+
"commit_inventory_json": false,
|
|
212
|
+
"commit_screenshots": false,
|
|
213
|
+
"raw_source_public": false
|
|
214
|
+
},
|
|
215
|
+
"support_level_explanation": "edit_proven is a proof-card support level, not broad topology generation."
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"schema_version": "examples.truth.v2",
|
|
219
|
+
"artifact_type": "proof_card",
|
|
220
|
+
"name": "l2_resiliency_bgp_edit_proof",
|
|
221
|
+
"title": "L2 Resiliency + BGP",
|
|
222
|
+
"scenario_family": "l2_resiliency_routing",
|
|
223
|
+
"support_level": "edit_proven",
|
|
224
|
+
"capabilities": [
|
|
225
|
+
"bgp",
|
|
226
|
+
"stp",
|
|
227
|
+
"rstp",
|
|
228
|
+
"etherchannel",
|
|
229
|
+
"lacp",
|
|
230
|
+
"pagp",
|
|
231
|
+
"vtp",
|
|
232
|
+
"dtp"
|
|
233
|
+
],
|
|
234
|
+
"explicit_command": "set SW1 etherchannel 1 mode active interfaces FastEthernet0/1 FastEthernet0/2",
|
|
235
|
+
"try_command": "set SW1 etherchannel 1 mode active interfaces FastEthernet0/1 FastEthernet0/2",
|
|
236
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
237
|
+
"parity_excerpt": "explicit BGP/STP/EtherChannel/VTP/DTP IOS commands are edit_proven; generate_ready=false",
|
|
238
|
+
"refusal_boundary": "No redundant link creation, STP state validation, BGP convergence proof, or topology generation.",
|
|
239
|
+
"does_not_claim": "No redundant link creation, STP state validation, BGP convergence proof, or topology generation.",
|
|
240
|
+
"maturity_summary": {
|
|
241
|
+
"atlas_status": "edit_proven",
|
|
242
|
+
"example_status": "proof_card",
|
|
243
|
+
"donor_backed_ready": false,
|
|
244
|
+
"generate_ready": false
|
|
245
|
+
},
|
|
246
|
+
"artifact_policy": {
|
|
247
|
+
"commit_pkt_binary": false,
|
|
248
|
+
"commit_inventory_json": false,
|
|
249
|
+
"commit_screenshots": false,
|
|
250
|
+
"raw_source_public": false
|
|
251
|
+
},
|
|
252
|
+
"support_level_explanation": "edit_proven is a proof-card support level, not broad topology generation."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"schema_version": "examples.truth.v2",
|
|
256
|
+
"artifact_type": "proof_card",
|
|
257
|
+
"name": "l2_security_qos_proof",
|
|
258
|
+
"title": "L2 Security + QoS",
|
|
259
|
+
"scenario_family": "l2_security_monitoring",
|
|
260
|
+
"support_level": "donor_backed_ready",
|
|
261
|
+
"capabilities": [
|
|
262
|
+
"dot1x",
|
|
263
|
+
"qos",
|
|
264
|
+
"dhcp_snooping",
|
|
265
|
+
"dai",
|
|
266
|
+
"snmp",
|
|
267
|
+
"netflow",
|
|
268
|
+
"span"
|
|
269
|
+
],
|
|
270
|
+
"explicit_command": "set SW1 dot1x interface FastEthernet0/1 mode auto radius 192.168.1.10 key radius123",
|
|
271
|
+
"try_command": "set SW1 dot1x interface FastEthernet0/1 mode auto radius 192.168.1.10 key radius123",
|
|
272
|
+
"proof_doc": "docs/l2-security-qos-proof.md",
|
|
273
|
+
"parity_excerpt": "dot1x is donor_backed_ready; QoS remains edit_proven; generate_ready=false",
|
|
274
|
+
"refusal_boundary": "No broad NAC design, RADIUS user synthesis, certificate workflow, or end-to-end QoS policy inference.",
|
|
275
|
+
"does_not_claim": "No broad NAC design, RADIUS user synthesis, certificate workflow, or end-to-end QoS policy inference.",
|
|
276
|
+
"maturity_summary": {
|
|
277
|
+
"atlas_status": "donor_backed_ready",
|
|
278
|
+
"example_status": "proof_card",
|
|
279
|
+
"donor_backed_ready": true,
|
|
280
|
+
"generate_ready": false
|
|
281
|
+
},
|
|
282
|
+
"artifact_policy": {
|
|
283
|
+
"commit_pkt_binary": false,
|
|
284
|
+
"commit_inventory_json": false,
|
|
285
|
+
"commit_screenshots": false,
|
|
286
|
+
"raw_source_public": false
|
|
287
|
+
},
|
|
288
|
+
"support_level_explanation": "donor_backed_ready is a proof-card support level, not broad topology generation."
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"schema_version": "examples.truth.v2",
|
|
292
|
+
"artifact_type": "proof_card",
|
|
293
|
+
"name": "security_edge_deepening_proof",
|
|
294
|
+
"title": "Security Edge CBAC/ZFW",
|
|
295
|
+
"scenario_family": "wan_security_edge",
|
|
296
|
+
"support_level": "donor_backed_ready",
|
|
297
|
+
"capabilities": [
|
|
298
|
+
"cbac",
|
|
299
|
+
"zfw"
|
|
300
|
+
],
|
|
301
|
+
"explicit_command": "set R1 zfw zone-pair INSIDE_OUT source inside destination outside policy POLICY1",
|
|
302
|
+
"try_command": "set R1 zfw zone-pair INSIDE_OUT source inside destination outside policy POLICY1",
|
|
303
|
+
"proof_doc": "docs/security-edge-deepening-proof.md",
|
|
304
|
+
"parity_excerpt": "ZFW is donor_backed_ready; CBAC remains edit_proven; generate_ready=false",
|
|
305
|
+
"refusal_boundary": "No ASA GUI/internal mutation, clientless VPN, service-policy synthesis, or broad security topology generation.",
|
|
306
|
+
"does_not_claim": "No ASA GUI/internal mutation, clientless VPN, service-policy synthesis, or broad security topology generation.",
|
|
307
|
+
"maturity_summary": {
|
|
308
|
+
"atlas_status": "donor_backed_ready",
|
|
309
|
+
"example_status": "proof_card",
|
|
310
|
+
"donor_backed_ready": true,
|
|
311
|
+
"generate_ready": false
|
|
312
|
+
},
|
|
313
|
+
"artifact_policy": {
|
|
314
|
+
"commit_pkt_binary": false,
|
|
315
|
+
"commit_inventory_json": false,
|
|
316
|
+
"commit_screenshots": false,
|
|
317
|
+
"raw_source_public": false
|
|
318
|
+
},
|
|
319
|
+
"support_level_explanation": "donor_backed_ready is a proof-card support level, not broad topology generation."
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"schema_version": "examples.truth.v2",
|
|
323
|
+
"artifact_type": "proof_card",
|
|
324
|
+
"name": "voice_collaboration_proof",
|
|
325
|
+
"title": "Voice / Collaboration",
|
|
326
|
+
"scenario_family": "voice_collaboration",
|
|
327
|
+
"support_level": "donor_backed_ready",
|
|
328
|
+
"capabilities": [
|
|
329
|
+
"voip",
|
|
330
|
+
"ip_phone",
|
|
331
|
+
"call_manager"
|
|
332
|
+
],
|
|
333
|
+
"explicit_command": "set \"Router0\" telephony service source-address 192.168.10.1 port 2000 max-ephones 4 max-dn 4",
|
|
334
|
+
"try_command": "set \"Router0\" telephony service source-address 192.168.10.1 port 2000 max-ephones 4 max-dn 4",
|
|
335
|
+
"proof_doc": "docs/voice-collaboration-proof.md",
|
|
336
|
+
"parity_excerpt": "IOS telephony-service, ephone, and dial-peer paths are donor_backed_ready; generate_ready=false",
|
|
337
|
+
"refusal_boundary": "No Call Manager GUI synthesis, Linksys voice mutation, phone GUI internals, or broad VoIP topology generation.",
|
|
338
|
+
"does_not_claim": "No Call Manager GUI synthesis, Linksys voice mutation, phone GUI internals, or broad VoIP topology generation.",
|
|
339
|
+
"maturity_summary": {
|
|
340
|
+
"atlas_status": "donor_backed_ready",
|
|
341
|
+
"example_status": "proof_card",
|
|
342
|
+
"donor_backed_ready": true,
|
|
343
|
+
"generate_ready": false
|
|
344
|
+
},
|
|
345
|
+
"artifact_policy": {
|
|
346
|
+
"commit_pkt_binary": false,
|
|
347
|
+
"commit_inventory_json": false,
|
|
348
|
+
"commit_screenshots": false,
|
|
349
|
+
"raw_source_public": false
|
|
350
|
+
},
|
|
351
|
+
"support_level_explanation": "donor_backed_ready is a proof-card support level, not broad topology generation."
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"schema_version": "examples.truth.v2",
|
|
355
|
+
"artifact_type": "proof_card",
|
|
356
|
+
"name": "automation_controller_proof",
|
|
357
|
+
"title": "Automation / Controller Scripts",
|
|
358
|
+
"scenario_family": "automation_controller",
|
|
359
|
+
"support_level": "donor_backed_ready",
|
|
360
|
+
"capabilities": [
|
|
361
|
+
"python_programming",
|
|
362
|
+
"javascript_programming",
|
|
363
|
+
"tcp_udp_app"
|
|
364
|
+
],
|
|
365
|
+
"explicit_command": "set \"Device\" script app \"App Name\" file \"main.py\" content \"print('hello')\"",
|
|
366
|
+
"try_command": "set \"Device\" script app \"App Name\" file \"main.py\" content \"print('hello')\"",
|
|
367
|
+
"proof_doc": "docs/automation-controller-proof.md",
|
|
368
|
+
"parity_excerpt": "existing Python, JavaScript, and TCP/UDP script files are donor_backed_ready; generate_ready=false",
|
|
369
|
+
"refusal_boundary": "No Network Controller GUI synthesis, Blockly graph mutation, VM/IOx workflow generation, or new app/file creation.",
|
|
370
|
+
"does_not_claim": "No Network Controller GUI synthesis, Blockly graph mutation, VM/IOx workflow generation, or new app/file creation.",
|
|
371
|
+
"maturity_summary": {
|
|
372
|
+
"atlas_status": "donor_backed_ready",
|
|
373
|
+
"example_status": "proof_card",
|
|
374
|
+
"donor_backed_ready": true,
|
|
375
|
+
"generate_ready": false
|
|
376
|
+
},
|
|
377
|
+
"artifact_policy": {
|
|
378
|
+
"commit_pkt_binary": false,
|
|
379
|
+
"commit_inventory_json": false,
|
|
380
|
+
"commit_screenshots": false,
|
|
381
|
+
"raw_source_public": false
|
|
382
|
+
},
|
|
383
|
+
"support_level_explanation": "donor_backed_ready is a proof-card support level, not broad topology generation."
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"schema_version": "examples.truth.v2",
|
|
387
|
+
"artifact_type": "proof_card",
|
|
388
|
+
"name": "industrial_programming_proof",
|
|
389
|
+
"title": "Industrial Programming",
|
|
390
|
+
"scenario_family": "industrial_iot",
|
|
391
|
+
"support_level": "donor_backed_ready",
|
|
392
|
+
"capabilities": [
|
|
393
|
+
"real_http",
|
|
394
|
+
"real_websocket"
|
|
395
|
+
],
|
|
396
|
+
"explicit_command": "set \"Py: real http server 2\" script app \"Real HTTP Server\" file \"main.py\" content \"print('updated')\"",
|
|
397
|
+
"try_command": "set \"Py: real http server 2\" script app \"Real HTTP Server\" file \"main.py\" content \"print('updated')\"",
|
|
398
|
+
"proof_doc": "docs/industrial-programming-proof.md",
|
|
399
|
+
"parity_excerpt": "Real HTTP and Real WebSocket script-file edits are donor_backed_ready; generate_ready=false",
|
|
400
|
+
"refusal_boundary": "No MQTT broker generation, Profinet/PTP/L2NAT mutation, CyberObserver workflow, or industrial topology generation.",
|
|
401
|
+
"does_not_claim": "No MQTT broker generation, Profinet/PTP/L2NAT mutation, CyberObserver workflow, or industrial topology generation.",
|
|
402
|
+
"maturity_summary": {
|
|
403
|
+
"atlas_status": "donor_backed_ready",
|
|
404
|
+
"example_status": "proof_card",
|
|
405
|
+
"donor_backed_ready": true,
|
|
406
|
+
"generate_ready": false
|
|
407
|
+
},
|
|
408
|
+
"artifact_policy": {
|
|
409
|
+
"commit_pkt_binary": false,
|
|
410
|
+
"commit_inventory_json": false,
|
|
411
|
+
"commit_screenshots": false,
|
|
412
|
+
"raw_source_public": false
|
|
413
|
+
},
|
|
414
|
+
"support_level_explanation": "donor_backed_ready is a proof-card support level, not broad topology generation."
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"local_sample_evidence": {
|
|
418
|
+
"schema_version": "examples.truth.v2",
|
|
419
|
+
"source": "examples/local-sample-evidence.json",
|
|
420
|
+
"available": true,
|
|
421
|
+
"policy": "Local user-supplied samples are evidence inputs only, not curated donor truth or npm package content.",
|
|
422
|
+
"audit_source": "output/local-sample-audit.json",
|
|
423
|
+
"total_files": 367,
|
|
424
|
+
"decode_success_count": 366,
|
|
425
|
+
"decode_fail_count": 1,
|
|
426
|
+
"top_capabilities": [
|
|
427
|
+
{
|
|
428
|
+
"capability": "stp",
|
|
429
|
+
"sample_count": 348,
|
|
430
|
+
"examples": [
|
|
431
|
+
"09. 2Switches_3Routers_Rime_New.pkt",
|
|
432
|
+
"1-Securing Network Devices and Establish a SSH Session.pkt",
|
|
433
|
+
"10-IPv4 Static and Default Routes.pkt"
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"capability": "static_route",
|
|
438
|
+
"sample_count": 87,
|
|
439
|
+
"examples": [
|
|
440
|
+
"09. 2Switches_3Routers_Rime_New.pkt",
|
|
441
|
+
"10-IPv4 Static and Default Routes.pkt",
|
|
442
|
+
"13.3.2 lab.pkt"
|
|
443
|
+
]
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"capability": "ripv2",
|
|
447
|
+
"sample_count": 61,
|
|
448
|
+
"examples": [
|
|
449
|
+
"10routerEGIRP.pkt",
|
|
450
|
+
"10RouterRIP.pkt",
|
|
451
|
+
"13.3.2 lab.pkt"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"capability": "default_route",
|
|
456
|
+
"sample_count": 56,
|
|
457
|
+
"examples": [
|
|
458
|
+
"10-IPv4 Static and Default Routes.pkt",
|
|
459
|
+
"13.3.2 lab.pkt",
|
|
460
|
+
"23i2110.pkt"
|
|
461
|
+
]
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"capability": "ospfv2",
|
|
465
|
+
"sample_count": 50,
|
|
466
|
+
"examples": [
|
|
467
|
+
"11-Single-Area OSPFv2.pkt",
|
|
468
|
+
"13routerOSPF.pkt",
|
|
469
|
+
"2020-06-18 OSPF.pkt"
|
|
470
|
+
]
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"capability": "dhcp_pool",
|
|
474
|
+
"sample_count": 48,
|
|
475
|
+
"examples": [
|
|
476
|
+
"10PORTDHCP.pkt",
|
|
477
|
+
"20211220 VoIP, PortSec, DHCP - finished.pkt",
|
|
478
|
+
"6-DHCPv4.pkt"
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"capability": "acl",
|
|
483
|
+
"sample_count": 40,
|
|
484
|
+
"examples": [
|
|
485
|
+
"13.3.2 lab.pkt",
|
|
486
|
+
"2020-06-18 OSPF.pkt",
|
|
487
|
+
"23i2110.pkt"
|
|
488
|
+
]
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"capability": "ssh_ios",
|
|
492
|
+
"sample_count": 27,
|
|
493
|
+
"examples": [
|
|
494
|
+
"1-Securing Network Devices and Establish a SSH Session.pkt",
|
|
495
|
+
"16.4.7 lab.pkt",
|
|
496
|
+
"2020-05-16 AAA NTP For Learnersv3.pkt"
|
|
497
|
+
]
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"capability": "dhcp_relay",
|
|
501
|
+
"sample_count": 24,
|
|
502
|
+
"examples": [
|
|
503
|
+
"2020-04-19 HSRP OGIT PT Lab.pkt",
|
|
504
|
+
"2020-05-16 AAA NTP For Learnersv3.pkt",
|
|
505
|
+
"2020-05-20 Routing NTP and more WTW.pkt"
|
|
506
|
+
]
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"capability": "eigrp_ipv4",
|
|
510
|
+
"sample_count": 22,
|
|
511
|
+
"examples": [
|
|
512
|
+
"10routerEGIRP.pkt",
|
|
513
|
+
"13routerEigrp.pkt",
|
|
514
|
+
"13routerEigrpFINALIZED.pkt"
|
|
515
|
+
]
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"capability": "etherchannel",
|
|
519
|
+
"sample_count": 7,
|
|
520
|
+
"examples": [
|
|
521
|
+
"20211124 L2 EtherChannel, HSRP, OSPF - empty.pkt",
|
|
522
|
+
"20211124 L2 EtherChannel, HSRP, OSPF - finished.pkt",
|
|
523
|
+
"5-Implement Inter-VLAN Routing and Etherchannel.pkt"
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"capability": "bgp",
|
|
528
|
+
"sample_count": 2,
|
|
529
|
+
"examples": [
|
|
530
|
+
"Cisco-networking-projects-main\\BGP\\BGP_3_Router\\BGP_3_ROUTERS.pkt",
|
|
531
|
+
"Cisco-networking-projects-main\\BGP\\BGP_Class_C\\BGP_Class_C.pkt"
|
|
532
|
+
]
|
|
533
|
+
}
|
|
534
|
+
]
|
|
535
|
+
},
|
|
536
|
+
"proof_readiness_candidates": {
|
|
537
|
+
"schema_version": "proof_readiness.v1",
|
|
538
|
+
"available": true,
|
|
539
|
+
"release_line": "0.2.4 candidate",
|
|
540
|
+
"dashboard_doc": "docs/proof-readiness-dashboard.md",
|
|
541
|
+
"policy": "Promotion candidates are planning truth only. A capability can move to donor_backed_ready only after explicit command shape, sample evidence, decode evidence, editor roundtrip, deterministic target resolution, and clean refusal behavior all exist.",
|
|
542
|
+
"generate_ready": 0,
|
|
543
|
+
"primary_candidates": [
|
|
544
|
+
{
|
|
545
|
+
"capability": "ospfv2",
|
|
546
|
+
"scenario_family": "ipv4_routing_management",
|
|
547
|
+
"current_status": "edit_proven",
|
|
548
|
+
"local_sample_count": 50,
|
|
549
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
550
|
+
"next_safe_action": "Add proof-linked selected-donor readiness for explicit OSPFv2 IOS network commands.",
|
|
551
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
552
|
+
"explicit_command": "set R1 ospfv2 1 network 10.0.0.0 wildcard 0.0.0.255 area 0",
|
|
553
|
+
"required_evidence": [
|
|
554
|
+
"explicit_command_shape",
|
|
555
|
+
"parser_family_regression",
|
|
556
|
+
"decode_backed_sample_evidence",
|
|
557
|
+
"editor_roundtrip_test",
|
|
558
|
+
"deterministic_target_resolution",
|
|
559
|
+
"clean_ambiguity_refusal"
|
|
560
|
+
],
|
|
561
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
562
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"capability": "eigrp_ipv4",
|
|
566
|
+
"scenario_family": "ipv4_routing_management",
|
|
567
|
+
"current_status": "edit_proven",
|
|
568
|
+
"local_sample_count": 22,
|
|
569
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
570
|
+
"next_safe_action": "Add proof-linked readiness for explicit EIGRP IPv4 network commands with router target validation.",
|
|
571
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
572
|
+
"explicit_command": "set R1 eigrp ipv4 100 network 10.0.0.0 wildcard 0.0.0.255 no-auto-summary",
|
|
573
|
+
"required_evidence": [
|
|
574
|
+
"explicit_command_shape",
|
|
575
|
+
"parser_family_regression",
|
|
576
|
+
"decode_backed_sample_evidence",
|
|
577
|
+
"editor_roundtrip_test",
|
|
578
|
+
"deterministic_target_resolution",
|
|
579
|
+
"clean_ambiguity_refusal"
|
|
580
|
+
],
|
|
581
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
582
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"capability": "ripv2",
|
|
586
|
+
"scenario_family": "ipv4_routing_management",
|
|
587
|
+
"current_status": "edit_proven",
|
|
588
|
+
"local_sample_count": 61,
|
|
589
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
590
|
+
"next_safe_action": "Promote explicit RIPv2 IOS commands after selected donor and interface scope are locked.",
|
|
591
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
592
|
+
"explicit_command": "set R1 rip version 2 network 10.0.0.0 no-auto-summary",
|
|
593
|
+
"required_evidence": [
|
|
594
|
+
"explicit_command_shape",
|
|
595
|
+
"parser_family_regression",
|
|
596
|
+
"decode_backed_sample_evidence",
|
|
597
|
+
"editor_roundtrip_test",
|
|
598
|
+
"deterministic_target_resolution",
|
|
599
|
+
"clean_ambiguity_refusal"
|
|
600
|
+
],
|
|
601
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
602
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"capability": "static_route",
|
|
606
|
+
"scenario_family": "ipv4_routing_management",
|
|
607
|
+
"current_status": "edit_proven",
|
|
608
|
+
"local_sample_count": 87,
|
|
609
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
610
|
+
"next_safe_action": "Promote explicit static/default route commands where gateway and router target are deterministic.",
|
|
611
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
612
|
+
"explicit_command": "set R1 static-route 192.168.10.0/24 via 10.0.0.1",
|
|
613
|
+
"required_evidence": [
|
|
614
|
+
"explicit_command_shape",
|
|
615
|
+
"parser_family_regression",
|
|
616
|
+
"decode_backed_sample_evidence",
|
|
617
|
+
"editor_roundtrip_test",
|
|
618
|
+
"deterministic_target_resolution",
|
|
619
|
+
"clean_ambiguity_refusal"
|
|
620
|
+
],
|
|
621
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
622
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"capability": "default_route",
|
|
626
|
+
"scenario_family": "ipv4_routing_management",
|
|
627
|
+
"current_status": "edit_proven",
|
|
628
|
+
"local_sample_count": 56,
|
|
629
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
630
|
+
"next_safe_action": "Use the same selected-donor proof path as static_route, but keep broad routing design blocked.",
|
|
631
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
632
|
+
"explicit_command": "set R1 static-route 0.0.0.0/0 via 10.0.0.1",
|
|
633
|
+
"required_evidence": [
|
|
634
|
+
"explicit_command_shape",
|
|
635
|
+
"parser_family_regression",
|
|
636
|
+
"decode_backed_sample_evidence",
|
|
637
|
+
"editor_roundtrip_test",
|
|
638
|
+
"deterministic_target_resolution",
|
|
639
|
+
"clean_ambiguity_refusal"
|
|
640
|
+
],
|
|
641
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
642
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"capability": "dhcp_relay",
|
|
646
|
+
"scenario_family": "ipv4_routing_management",
|
|
647
|
+
"current_status": "edit_proven",
|
|
648
|
+
"local_sample_count": 24,
|
|
649
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
650
|
+
"next_safe_action": "Promote explicit helper-address edits only when interface and relay server are named or uniquely resolved.",
|
|
651
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
652
|
+
"explicit_command": "set R1 dhcp-relay interface GigabitEthernet0/0 helper 192.168.1.10",
|
|
653
|
+
"required_evidence": [
|
|
654
|
+
"explicit_command_shape",
|
|
655
|
+
"parser_family_regression",
|
|
656
|
+
"decode_backed_sample_evidence",
|
|
657
|
+
"editor_roundtrip_test",
|
|
658
|
+
"deterministic_target_resolution",
|
|
659
|
+
"clean_ambiguity_refusal"
|
|
660
|
+
],
|
|
661
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
662
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"capability": "ssh_ios",
|
|
666
|
+
"scenario_family": "ipv4_routing_management",
|
|
667
|
+
"current_status": "edit_proven",
|
|
668
|
+
"local_sample_count": 27,
|
|
669
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
670
|
+
"next_safe_action": "Promote explicit IOS SSH setup when router target, domain, username, and modulus are deterministic.",
|
|
671
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
672
|
+
"explicit_command": "set R1 ssh domain lab.local username admin password cisco123 modulus 1024",
|
|
673
|
+
"required_evidence": [
|
|
674
|
+
"explicit_command_shape",
|
|
675
|
+
"parser_family_regression",
|
|
676
|
+
"decode_backed_sample_evidence",
|
|
677
|
+
"editor_roundtrip_test",
|
|
678
|
+
"deterministic_target_resolution",
|
|
679
|
+
"clean_ambiguity_refusal"
|
|
680
|
+
],
|
|
681
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
682
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"capability": "ntp_ios",
|
|
686
|
+
"scenario_family": "ipv4_routing_management",
|
|
687
|
+
"current_status": "edit_proven",
|
|
688
|
+
"local_sample_count": 9,
|
|
689
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
690
|
+
"next_safe_action": "Promote explicit NTP server edits after selected-donor proof confirms config persistence.",
|
|
691
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
692
|
+
"explicit_command": "set R1 ntp server 192.168.1.20",
|
|
693
|
+
"required_evidence": [
|
|
694
|
+
"explicit_command_shape",
|
|
695
|
+
"parser_family_regression",
|
|
696
|
+
"decode_backed_sample_evidence",
|
|
697
|
+
"editor_roundtrip_test",
|
|
698
|
+
"deterministic_target_resolution",
|
|
699
|
+
"clean_ambiguity_refusal"
|
|
700
|
+
],
|
|
701
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
702
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
"capability": "syslog_ios",
|
|
706
|
+
"scenario_family": "ipv4_routing_management",
|
|
707
|
+
"current_status": "edit_proven",
|
|
708
|
+
"local_sample_count": 0,
|
|
709
|
+
"proof_doc": "docs/ipv4-routing-management-proof.md",
|
|
710
|
+
"next_safe_action": "Keep edit-proven until local decode-backed sample evidence exists for logging host lines.",
|
|
711
|
+
"promotion_blocker": "blocked_by_missing_decode_evidence",
|
|
712
|
+
"explicit_command": "set R1 syslog server 192.168.1.30",
|
|
713
|
+
"required_evidence": [
|
|
714
|
+
"explicit_command_shape",
|
|
715
|
+
"parser_family_regression",
|
|
716
|
+
"decode_backed_sample_evidence",
|
|
717
|
+
"editor_roundtrip_test",
|
|
718
|
+
"deterministic_target_resolution",
|
|
719
|
+
"clean_ambiguity_refusal"
|
|
720
|
+
],
|
|
721
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
722
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
723
|
+
}
|
|
724
|
+
],
|
|
725
|
+
"secondary_candidates": [
|
|
726
|
+
{
|
|
727
|
+
"capability": "stp",
|
|
728
|
+
"scenario_family": "l2_resiliency_routing",
|
|
729
|
+
"current_status": "edit_proven",
|
|
730
|
+
"local_sample_count": 348,
|
|
731
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
732
|
+
"next_safe_action": "Promote explicit STP mode/root commands after switch target and VLAN scope are deterministic.",
|
|
733
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
734
|
+
"explicit_command": "set SW1 stp mode rapid-pvst vlan 10 root primary",
|
|
735
|
+
"required_evidence": [
|
|
736
|
+
"explicit_command_shape",
|
|
737
|
+
"parser_family_regression",
|
|
738
|
+
"decode_backed_sample_evidence",
|
|
739
|
+
"editor_roundtrip_test",
|
|
740
|
+
"deterministic_target_resolution",
|
|
741
|
+
"clean_ambiguity_refusal"
|
|
742
|
+
],
|
|
743
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
744
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"capability": "rstp",
|
|
748
|
+
"scenario_family": "l2_resiliency_routing",
|
|
749
|
+
"current_status": "edit_proven",
|
|
750
|
+
"local_sample_count": 348,
|
|
751
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
752
|
+
"next_safe_action": "Use STP selected-donor proof path for rapid-pvst command shape.",
|
|
753
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
754
|
+
"explicit_command": "set SW1 stp mode rapid-pvst vlan 10 root primary",
|
|
755
|
+
"required_evidence": [
|
|
756
|
+
"explicit_command_shape",
|
|
757
|
+
"parser_family_regression",
|
|
758
|
+
"decode_backed_sample_evidence",
|
|
759
|
+
"editor_roundtrip_test",
|
|
760
|
+
"deterministic_target_resolution",
|
|
761
|
+
"clean_ambiguity_refusal"
|
|
762
|
+
],
|
|
763
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
764
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
"capability": "etherchannel",
|
|
768
|
+
"scenario_family": "l2_resiliency_routing",
|
|
769
|
+
"current_status": "edit_proven",
|
|
770
|
+
"local_sample_count": 7,
|
|
771
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
772
|
+
"next_safe_action": "Promote explicit channel-group edits only when every interface target is named and unique.",
|
|
773
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
774
|
+
"explicit_command": "set SW1 etherchannel 1 mode active interfaces FastEthernet0/1 FastEthernet0/2",
|
|
775
|
+
"required_evidence": [
|
|
776
|
+
"explicit_command_shape",
|
|
777
|
+
"parser_family_regression",
|
|
778
|
+
"decode_backed_sample_evidence",
|
|
779
|
+
"editor_roundtrip_test",
|
|
780
|
+
"deterministic_target_resolution",
|
|
781
|
+
"clean_ambiguity_refusal"
|
|
782
|
+
],
|
|
783
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
784
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"capability": "lacp",
|
|
788
|
+
"scenario_family": "l2_resiliency_routing",
|
|
789
|
+
"current_status": "edit_proven",
|
|
790
|
+
"local_sample_count": 7,
|
|
791
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
792
|
+
"next_safe_action": "Promote active/passive LACP modes through the EtherChannel proof gate.",
|
|
793
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
794
|
+
"explicit_command": "set SW1 etherchannel 1 mode active interfaces FastEthernet0/1 FastEthernet0/2",
|
|
795
|
+
"required_evidence": [
|
|
796
|
+
"explicit_command_shape",
|
|
797
|
+
"parser_family_regression",
|
|
798
|
+
"decode_backed_sample_evidence",
|
|
799
|
+
"editor_roundtrip_test",
|
|
800
|
+
"deterministic_target_resolution",
|
|
801
|
+
"clean_ambiguity_refusal"
|
|
802
|
+
],
|
|
803
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
804
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"capability": "pagp",
|
|
808
|
+
"scenario_family": "l2_resiliency_routing",
|
|
809
|
+
"current_status": "edit_proven",
|
|
810
|
+
"local_sample_count": 7,
|
|
811
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
812
|
+
"next_safe_action": "Promote desirable/auto PAgP modes only after selected-donor interface validation.",
|
|
813
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
814
|
+
"explicit_command": "set SW1 etherchannel 1 mode desirable interfaces FastEthernet0/1 FastEthernet0/2",
|
|
815
|
+
"required_evidence": [
|
|
816
|
+
"explicit_command_shape",
|
|
817
|
+
"parser_family_regression",
|
|
818
|
+
"decode_backed_sample_evidence",
|
|
819
|
+
"editor_roundtrip_test",
|
|
820
|
+
"deterministic_target_resolution",
|
|
821
|
+
"clean_ambiguity_refusal"
|
|
822
|
+
],
|
|
823
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
824
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"capability": "vtp",
|
|
828
|
+
"scenario_family": "l2_resiliency_routing",
|
|
829
|
+
"current_status": "edit_proven",
|
|
830
|
+
"local_sample_count": 5,
|
|
831
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
832
|
+
"next_safe_action": "Promote explicit VTP domain/mode/version edits when switch target is deterministic.",
|
|
833
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
834
|
+
"explicit_command": "set SW1 vtp domain CAMPUS mode server version 2",
|
|
835
|
+
"required_evidence": [
|
|
836
|
+
"explicit_command_shape",
|
|
837
|
+
"parser_family_regression",
|
|
838
|
+
"decode_backed_sample_evidence",
|
|
839
|
+
"editor_roundtrip_test",
|
|
840
|
+
"deterministic_target_resolution",
|
|
841
|
+
"clean_ambiguity_refusal"
|
|
842
|
+
],
|
|
843
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
844
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"capability": "dtp",
|
|
848
|
+
"scenario_family": "l2_resiliency_routing",
|
|
849
|
+
"current_status": "edit_proven",
|
|
850
|
+
"local_sample_count": 0,
|
|
851
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
852
|
+
"next_safe_action": "Keep edit-proven until local decode-backed DTP sample evidence is found.",
|
|
853
|
+
"promotion_blocker": "blocked_by_missing_decode_evidence",
|
|
854
|
+
"explicit_command": "set SW1 dtp interface FastEthernet0/1 mode dynamic desirable",
|
|
855
|
+
"required_evidence": [
|
|
856
|
+
"explicit_command_shape",
|
|
857
|
+
"parser_family_regression",
|
|
858
|
+
"decode_backed_sample_evidence",
|
|
859
|
+
"editor_roundtrip_test",
|
|
860
|
+
"deterministic_target_resolution",
|
|
861
|
+
"clean_ambiguity_refusal"
|
|
862
|
+
],
|
|
863
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
864
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"capability": "bgp",
|
|
868
|
+
"scenario_family": "l2_resiliency_routing",
|
|
869
|
+
"current_status": "edit_proven",
|
|
870
|
+
"local_sample_count": 2,
|
|
871
|
+
"proof_doc": "docs/l2-resiliency-bgp-proof.md",
|
|
872
|
+
"next_safe_action": "Promote explicit BGP neighbor/network edits only after ASN, neighbor, and network target validation are proof-linked.",
|
|
873
|
+
"promotion_blocker": "blocked_by_no_deterministic_target",
|
|
874
|
+
"explicit_command": "set R1 bgp 65001 neighbor 10.0.0.2 remote-as 65002 network 192.168.1.0 mask 255.255.255.0",
|
|
875
|
+
"required_evidence": [
|
|
876
|
+
"explicit_command_shape",
|
|
877
|
+
"parser_family_regression",
|
|
878
|
+
"decode_backed_sample_evidence",
|
|
879
|
+
"editor_roundtrip_test",
|
|
880
|
+
"deterministic_target_resolution",
|
|
881
|
+
"clean_ambiguity_refusal"
|
|
882
|
+
],
|
|
883
|
+
"test_target": "tests/test_pkt_editor.py::requires_twofish explicit IOS roundtrip path",
|
|
884
|
+
"strict_gate": "PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q"
|
|
885
|
+
}
|
|
886
|
+
]
|
|
887
|
+
},
|
|
2
888
|
"curated_examples": [
|
|
3
889
|
{
|
|
890
|
+
"schema_version": "examples.truth.v2",
|
|
891
|
+
"artifact_type": "showcase_example",
|
|
4
892
|
"name": "complex_campus_master_edit_v4",
|
|
5
893
|
"title": "Complex Campus",
|
|
6
894
|
"scenario_family": "campus",
|
|
@@ -29,9 +917,21 @@
|
|
|
29
917
|
"donor_origin": "donor-backed",
|
|
30
918
|
"fixture_name": "campus_core_complex",
|
|
31
919
|
"matrix_excerpt": "campus_core_complex | known_working_example | family=campus",
|
|
32
|
-
"parity_excerpt": "management_vlan=
|
|
920
|
+
"parity_excerpt": "management_vlan=known_working_example, telnet=known_working_example, acl=known_working_example",
|
|
33
921
|
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
34
922
|
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
923
|
+
"artifact_policy": {
|
|
924
|
+
"commit_pkt_binary": false,
|
|
925
|
+
"commit_inventory_json": true,
|
|
926
|
+
"commit_screenshots": true,
|
|
927
|
+
"raw_source_public": false
|
|
928
|
+
},
|
|
929
|
+
"maturity_summary": {
|
|
930
|
+
"atlas_status": "known_working_example",
|
|
931
|
+
"example_status": "known_working_example",
|
|
932
|
+
"donor_backed_ready": true,
|
|
933
|
+
"generate_ready": false
|
|
934
|
+
},
|
|
35
935
|
"inventory_json": "examples/complex_campus_master_edit_v4.inventory.json",
|
|
36
936
|
"screenshots": [
|
|
37
937
|
"examples/screenshots/complex_campus_master_edit_v4.png"
|
|
@@ -43,6 +943,8 @@
|
|
|
43
943
|
"image": "examples/screenshots/complex_campus_master_edit_v4.png"
|
|
44
944
|
},
|
|
45
945
|
{
|
|
946
|
+
"schema_version": "examples.truth.v2",
|
|
947
|
+
"artifact_type": "showcase_example",
|
|
46
948
|
"name": "home_iot_cli_edit_v1",
|
|
47
949
|
"title": "Home IoT",
|
|
48
950
|
"scenario_family": "home_iot",
|
|
@@ -59,13 +961,25 @@
|
|
|
59
961
|
],
|
|
60
962
|
"acceptance_rank": 3,
|
|
61
963
|
"acceptance_label": "known_working_example",
|
|
62
|
-
"acceptance_excerpt": "known_working_example | donor=donor-backed | capabilities=iot, iot_registration, wireless_ap | mode=donor-backed constrained
|
|
964
|
+
"acceptance_excerpt": "known_working_example | donor=donor-backed | capabilities=iot, iot_registration, wireless_ap | mode=donor-backed constrained edit",
|
|
63
965
|
"donor_origin": "donor-backed",
|
|
64
966
|
"fixture_name": "home_iot_complex",
|
|
65
967
|
"matrix_excerpt": "home_iot_complex | known_working_example | family=home_iot",
|
|
66
|
-
"parity_excerpt": "iot=
|
|
968
|
+
"parity_excerpt": "iot=known_working_example, iot_registration=donor_backed_ready, wireless_ap=known_working_example",
|
|
67
969
|
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
68
970
|
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
971
|
+
"artifact_policy": {
|
|
972
|
+
"commit_pkt_binary": false,
|
|
973
|
+
"commit_inventory_json": true,
|
|
974
|
+
"commit_screenshots": true,
|
|
975
|
+
"raw_source_public": false
|
|
976
|
+
},
|
|
977
|
+
"maturity_summary": {
|
|
978
|
+
"atlas_status": "donor_backed_ready",
|
|
979
|
+
"example_status": "known_working_example",
|
|
980
|
+
"donor_backed_ready": true,
|
|
981
|
+
"generate_ready": false
|
|
982
|
+
},
|
|
69
983
|
"inventory_json": "examples/home_iot_cli_edit_v1.inventory.json",
|
|
70
984
|
"screenshots": [
|
|
71
985
|
"examples/screenshots/home_iot_cli_edit_v1.png"
|
|
@@ -77,6 +991,8 @@
|
|
|
77
991
|
"image": "examples/screenshots/home_iot_cli_edit_v1.png"
|
|
78
992
|
},
|
|
79
993
|
{
|
|
994
|
+
"schema_version": "examples.truth.v2",
|
|
995
|
+
"artifact_type": "showcase_example",
|
|
80
996
|
"name": "service_heavy_cli_edit_v1",
|
|
81
997
|
"title": "Service Heavy",
|
|
82
998
|
"scenario_family": "service_heavy",
|
|
@@ -103,9 +1019,21 @@
|
|
|
103
1019
|
"donor_origin": "donor-backed",
|
|
104
1020
|
"fixture_name": "service_heavy_complex",
|
|
105
1021
|
"matrix_excerpt": "service_heavy_complex | known_working_example | family=service_heavy",
|
|
106
|
-
"parity_excerpt": "server_dns=
|
|
1022
|
+
"parity_excerpt": "server_dns=known_working_example, server_dhcp=known_working_example, server_ftp=known_working_example",
|
|
107
1023
|
"decision_excerpt": "decision=known_working_example | donor_origin=donor-backed",
|
|
108
1024
|
"runtime_excerpt": "runtime=donor-backed example artifact",
|
|
1025
|
+
"artifact_policy": {
|
|
1026
|
+
"commit_pkt_binary": false,
|
|
1027
|
+
"commit_inventory_json": true,
|
|
1028
|
+
"commit_screenshots": true,
|
|
1029
|
+
"raw_source_public": false
|
|
1030
|
+
},
|
|
1031
|
+
"maturity_summary": {
|
|
1032
|
+
"atlas_status": "known_working_example",
|
|
1033
|
+
"example_status": "known_working_example",
|
|
1034
|
+
"donor_backed_ready": true,
|
|
1035
|
+
"generate_ready": false
|
|
1036
|
+
},
|
|
109
1037
|
"inventory_json": "examples/service_heavy_cli_edit_v1.inventory.json",
|
|
110
1038
|
"screenshots": [
|
|
111
1039
|
"examples/screenshots/service_heavy_cli_edit_v1.png",
|