packet-tracer-skill 0.2.2 → 0.2.3

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 CHANGED
@@ -4,6 +4,37 @@ All notable changes to this project should be recorded in this file.
4
4
 
5
5
  The format is intentionally simple and release-oriented.
6
6
 
7
+ ## [0.2.3] - 2026-05-03
8
+
9
+ ### Added
10
+
11
+ - voice/collaboration edit-proven proof for IOS `telephony-service`, `ephone-dn`, `ephone`, and `dial-peer voice` command shapes
12
+ - automation/controller edit-proven proof for existing Python, JavaScript, and TCP/UDP script-file replacement
13
+ - L2 security/QoS edit-proven proof for explicit dot1x and QoS IOS switch commands
14
+ - security-edge deepening proof for explicit router CBAC and ZFW IOS commands
15
+ - L2 resiliency + BGP edit-proven proof for explicit BGP, STP/RSTP, EtherChannel/LACP/PAgP, VTP, and DTP IOS commands
16
+ - IPv4 routing/NAT/IOS-management edit-proven proof for explicit OSPFv2, EIGRP IPv4, RIPv2, static/default route, DHCP relay, NAT/PAT, SSH, NTP, and syslog IOS commands
17
+ - local user-supplied Packet Tracer corpus audit via `--local-sample-audit-root` and ignored `output/local-sample-audit.json`
18
+ - donor-backed readiness expansion for dot1x, ZFW, voice/collaboration IOS edits, and automation/controller script-file edits
19
+ - donor-backed readiness expansion for explicit OSPFv3, EIGRP IPv6, RIPng, and IPv6 HSRP edit paths
20
+ - generate-ready pilot design doc that defines the future acceptance gate without enabling broad generate
21
+ - local/cache-only GitHub sample ingestion audit for `.pkt`/`.pka` repositories, license status, decode evidence, and promotion status
22
+
23
+ ### Changed
24
+
25
+ - feature atlas candidate status now promotes `ospfv3`, `eigrp_ipv6`, `ripng`, `hsrp`, `dot1x`, `qos`, `cbac`, and `zfw` only when editor roundtrip and decode-backed evidence exists
26
+ - donor-backed readiness now requires proof-linked sample, decode, parser, and editor roundtrip evidence
27
+ - remote samples with unknown license metadata now stay `reference_only`; permissive-license samples still require decode and inventory validation before curated donor eligibility
28
+ - local `pkt_examples` evidence is now separated from public curated truth; raw `.pkt/.pka` files remain excluded from git and npm
29
+ - README and proof docs now describe `0.2.3` as a capability release, not an unpublished candidate
30
+ - ASA service-policy, clientless VPN, Linksys voice, Network Controller GUI, Blockly, VM/IOx, and broad physical/media workflows remain report-only
31
+
32
+ ### Notes
33
+
34
+ - `0.2.3` is a capability proof/readiness release, not a broad generation release
35
+ - `generate_ready=0` remains intentional until donor-backed acceptance evidence exists
36
+ - broad NAC, QoS, ASA, and security topology generation remains blocked
37
+
7
38
  ## [0.2.2]
8
39
 
9
40
  ### Added
@@ -15,7 +46,7 @@ The format is intentionally simple and release-oriented.
15
46
  ### Changed
16
47
 
17
48
  - package version advanced to `0.2.2` for the README/runtime cleanup and advanced wireless feature wave
18
- - README runtime setup no longer presents a user-specific `.codex` path as the default bridge location
49
+ - README runtime setup no longer presents a user-specific local path as the default bridge location
19
50
  - advanced wireless prompts now classify into the `wireless_advanced` family without drifting into `service_heavy`
20
51
  - WEP and WPA Enterprise/RADIUS are represented as edit-proven where explicit deterministic edit targets exist, while broader WLC/cellular/Bluetooth/Meraki scope remains report-only
21
52
 
package/README.md CHANGED
@@ -1,20 +1,54 @@
1
- # packet-tracer-skill
1
+ # packet-tracer-skill
2
2
 
3
3
  [![CI](https://github.com/20hajiyev/packet-tracer-skill/actions/workflows/ci.yml/badge.svg)](https://github.com/20hajiyev/packet-tracer-skill/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
5
  [![Packet Tracer 9.0](https://img.shields.io/badge/Packet%20Tracer-9.0.0.0810-blue.svg)](https://github.com/20hajiyev/packet-tracer-skill)
6
6
 
7
- Cisco Packet Tracer 9.x `.pkt` generator and editor for skill-based coding hosts.
8
-
9
- This repository is built for one job: take a natural-language network request, build an explicit scenario-aware plan, adapt a compatible donor lab, and produce a Packet Tracer 9.x workflow that stays open-first and compatibility-first.
10
-
11
- `0.2.2` public preview baseline is focused on:
7
+ Cisco Packet Tracer 9.x `.pkt` generator and editor for skill-based coding hosts.
8
+
9
+ This repository is built for one job: take a natural-language network request, build an explicit scenario-aware plan, adapt a compatible donor lab, and produce a Packet Tracer 9.x workflow that stays open-first and compatibility-first.
10
+
11
+ It is intended for networking labs where correctness matters more than producing a pretty but unverifiable diagram. The skill can plan, inspect, edit, compare, and explain Packet Tracer scenarios, but it deliberately separates "recognized by the parser", "visible in inventory", "edit-proven", "donor-backed ready", and "generate-ready" support.
12
+
13
+ `0.2.3` capability release is focused on:
12
14
 
13
15
  - donor-backed and scenario-aware public messaging
14
16
  - conservative Windows-first runtime truth
15
17
  - known working scenario set examples with acceptance-backed artifacts
16
- - README runtime cleanup, advanced wireless feature atlas coverage, and GitHub-launch-ops-ready metadata
17
-
18
+ - expanded edit-proven capability proof across voice, automation, L2 security, WAN/security, BGP/L2 resiliency, IPv4 routing/NAT, IOS management, and local sample audit workflows
19
+
20
+ `0.2.3` freezes the voice/collaboration and automation/controller proof work, explicit L2 dot1x/QoS and router-based CBAC/ZFW proof, local-sample-driven BGP/L2 resiliency, IPv4 routing/NAT/IOS-management proof waves, and the first broader donor-backed edit readiness expansion. It remains conservative: `generate_ready=0` is intentional until a future single-donor acceptance-backed pilot is proven.
21
+
22
+ ## What It Does
23
+
24
+ `packet-tracer-skill` turns network-lab requests into explicit Packet Tracer workflows. The core loop is:
25
+
26
+ 1. parse the prompt into a scenario family and requested capabilities
27
+ 2. compare those capabilities against the current support matrix
28
+ 3. look for a compatible donor lab when strict `.pkt` work is required
29
+ 4. refuse unsafe or unsupported changes instead of guessing
30
+ 5. return a decision payload that explains what passed, what failed, and what would make it pass
31
+
32
+ The current public surface is strongest for these tasks:
33
+
34
+ - scenario-aware planning for campus, service-heavy, Home IoT, WAN/security edge, IPv6/routing, IPv4 routing/management, L2 security/monitoring, L2 resiliency/BGP, and advanced wireless prompts
35
+ - explicit `.pkt` edits for proven command shapes such as VLAN, DHCP, ACL, server services, IPv6/routing subsets, IPv4 routing/NAT/IOS-management subsets, L2 security/monitoring subsets, BGP/STP/EtherChannel/VTP/DTP IOS text edits, Home IoT constrained edits, and narrow advanced wireless edits
36
+ - capability parity reports that explain whether a prompt is inventory-known, edit-supported, donor-limited, acceptance-gated, or unsupported
37
+ - runtime diagnostics for Packet Tracer installation, donor path, Twofish bridge resolution, and blocked versus ready operations
38
+ - public proof artifacts through examples, inventory manifests, acceptance excerpts, and donor proof docs
39
+
40
+ ## What It Does Not Claim
41
+
42
+ The project is intentionally conservative. It does not claim universal Packet Tracer automation.
43
+
44
+ - It does not claim every Packet Tracer feature is generate-ready.
45
+ - It does not synthesize arbitrary `.pkt` internals when donor or acceptance evidence is weak.
46
+ - It does not treat a successful skill install as proof that real `.pkt` decode/edit/generate is ready.
47
+ - It does not commit raw `.pkt` donor labs or local bridge binaries into the public package.
48
+ - It does not claim repo-local self-contained runtime readiness when validation depends on an external bridge override.
49
+
50
+ The feature atlas exists so unsupported and under-modelled Packet Tracer areas are visible instead of hidden. The intended path is: map the feature, prove inventory visibility, prove edit roundtrip, add donor-backed readiness, and only then consider generate readiness.
51
+
18
52
  ## Why It Is Different
19
53
 
20
54
  `packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
@@ -41,8 +75,15 @@ Current product strengths:
41
75
  - known working examples with screenshots and acceptance excerpts
42
76
 
43
77
  ## Runtime Reality
44
-
45
- Use the same repository, then install it into the skill path your host expects.
78
+
79
+ Use the same repository, then install it into the skill path your host expects.
80
+
81
+ There are two separate installation stories:
82
+
83
+ - installing the skill package into Codex, Cursor, Claude, Gemini, Kiro, AdaL, OpenCode, or a custom skill directory
84
+ - making the local machine capable of opening, decoding, editing, and regenerating real Packet Tracer `.pkt` files
85
+
86
+ The first story is handled by the npm installer. The second story depends on Packet Tracer 9.0, a compatible donor lab, and a local Twofish bridge. This is why the README keeps repeating the runtime distinction: a host can install the skill successfully while strict `.pkt` operations are still blocked.
46
87
 
47
88
  | Tool | Install | First Use |
48
89
  | --- | --- | --- |
@@ -119,6 +160,7 @@ powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
119
160
 
120
161
  Launch references:
121
162
 
163
+ - [docs/release-notes-0.2.3.md](docs/release-notes-0.2.3.md)
122
164
  - [docs/release-notes-0.2.2.md](docs/release-notes-0.2.2.md)
123
165
  - [docs/hero-demo-plan.md](docs/hero-demo-plan.md)
124
166
  - [docs/github-metadata.md](docs/github-metadata.md)
@@ -128,6 +170,13 @@ Launch references:
128
170
  - [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
129
171
  - [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
130
172
  - [docs/wireless-advanced-proof.md](docs/wireless-advanced-proof.md)
173
+ - [docs/industrial-programming-proof.md](docs/industrial-programming-proof.md)
174
+ - [docs/automation-controller-proof.md](docs/automation-controller-proof.md)
175
+ - [docs/voice-collaboration-proof.md](docs/voice-collaboration-proof.md)
176
+ - [docs/l2-resiliency-bgp-proof.md](docs/l2-resiliency-bgp-proof.md)
177
+ - [docs/ipv4-routing-management-proof.md](docs/ipv4-routing-management-proof.md)
178
+ - [docs/l2-security-qos-proof.md](docs/l2-security-qos-proof.md)
179
+ - [docs/security-edge-deepening-proof.md](docs/security-edge-deepening-proof.md)
131
180
  - [docs/packet-tracer-feature-gap-atlas.md](docs/packet-tracer-feature-gap-atlas.md)
132
181
 
133
182
  ## Runtime Doctor Contract
@@ -199,8 +248,7 @@ Important variables:
199
248
  - `PKT_TWOFISH_LIBRARY`
200
249
  - `PKT_TWOFISH_SEARCH_ROOTS`
201
250
 
202
- Twofish bridge setup is intentionally local-machine specific. Do not copy another
203
- user's `.codex` path as if it were universal.
251
+ Twofish bridge setup is intentionally local-machine specific. Use a path that exists on your own machine.
204
252
 
205
253
  Generic explicit bridge path:
206
254
 
@@ -222,9 +270,7 @@ folder:
222
270
  $env:PKT_TWOFISH_SEARCH_ROOTS="C:\path\to\bridge-folder"
223
271
  ```
224
272
 
225
- Developer-local paths such as `$env:USERPROFILE\.codex\skills\...` are valid only
226
- for the person and host where that bridge exists. They are not the public setup
227
- contract.
273
+ Developer-local bridge paths are valid only for the person and host where that bridge exists. They are not the public setup contract.
228
274
 
229
275
  Required policy:
230
276
 
@@ -239,9 +285,11 @@ Troubleshooting guide:
239
285
  - `bridge_resolution=missing` means strict decode/edit/generate is blocked until `PKT_TWOFISH_LIBRARY` or `PKT_TWOFISH_SEARCH_ROOTS` resolves a compatible bridge.
240
286
  - `validate_open` readiness only proves Packet Tracer can launch a file. Strict `.pkt` generation still depends on donor and bridge readiness.
241
287
 
242
- ## Core Product Surfaces
243
-
244
- Use `--explain-plan` when you need the full decision payload:
288
+ ## Core Product Surfaces
289
+
290
+ The CLI is not only a generator entrypoint. It is also the inspection surface for deciding whether a request is safe. In normal development, start with the reporting commands before expecting a final `.pkt` output.
291
+
292
+ Use `--explain-plan` when you need the full decision payload:
245
293
 
246
294
  ```powershell
247
295
  python .\scripts\generate_pkt.py --explain-plan "6 department campus with router-on-a-stick, VLAN, DHCP, management VLAN, Telnet, ACL"
@@ -265,19 +313,88 @@ Use `--feature-gap-report` for the Packet Tracer 9.0 feature atlas:
265
313
  python .\scripts\generate_pkt.py --feature-gap-report
266
314
  ```
267
315
 
268
- The atlas now distinguishes report-only features from edit-proven features. IPv6/routing, a constrained L2 security/monitoring subset, and a narrow advanced-wireless edit subset can be edited with explicit commands, but none of these are claimed as broad generate-ready without donor-backed acceptance evidence.
316
+ ## GitHub Sample Ingestion Is Local/Cache-Only
317
+
318
+ The skill can search GitHub for public Packet Tracer sample repositories when you explicitly opt in with `--search-remote`. This is a developer workflow for collecting evidence, not a promise that downloaded labs become trusted donors or package assets.
319
+
320
+ Remote ingestion rules:
321
+
322
+ - imported `.pkt` and `.pka` files stay under `output/remote-import-cache` by default
323
+ - `output/remote-import-cache` is local-only and is not included in the npm package
324
+ - unknown or missing license metadata is treated as `reference_only`
325
+ - permissive-license repositories, such as MIT, only become curated donor candidates after decode and inventory validation
326
+ - decode-fail samples can contribute sample-path evidence, but they never create edit, donor-backed, or generate-ready claims
327
+ - final `.pkt` apply still uses the same `single-donor` safety rule
328
+
329
+ Preview GitHub candidates without downloading archives:
330
+
331
+ ```powershell
332
+ python .\scripts\generate_pkt.py --explain-plan "ipv6 ospf hsrp lab" --search-remote --remote-dry-run --max-remote-results 3
333
+ ```
334
+
335
+ Import into the local cache and write the audit report:
336
+
337
+ ```powershell
338
+ python .\scripts\generate_pkt.py --explain-plan "ipv6 ospf hsrp lab" --search-remote --max-remote-results 3 --remote-audit-out output\remote-import-cache\remote-sample-audit.json
339
+ ```
340
+
341
+ ## Local Sample Audit Is Evidence-Only
342
+
343
+ If you have your own Packet Tracer lab folder, audit it locally instead of copying raw `.pkt` files into this repo:
344
+
345
+ ```powershell
346
+ python .\scripts\generate_pkt.py --local-sample-audit-root "C:\path\to\pkt_examples"
347
+ ```
348
+
349
+ By default this writes `output/local-sample-audit.json`. That file is local-only and ignored by git/npm packaging. The audit reports total `.pkt/.pka` files, decode success/fail counts, detected config capabilities, top device types, and local promotion candidates. It is evidence for future proof waves, not a curated donor registry entry by itself.
350
+
351
+ Use an explicit output path when you want to compare audit snapshots:
352
+
353
+ ```powershell
354
+ python .\scripts\generate_pkt.py --local-sample-audit-root "C:\path\to\pkt_examples" --local-sample-audit-out output\local-sample-audit.json
355
+ ```
356
+
357
+ Local evidence still follows the same maturity ladder: sample path evidence, decode evidence, inventory proof, editor roundtrip proof, donor-backed readiness, then possible generate readiness. Raw user-supplied `.pkt/.pka` files are not committed or published.
358
+
359
+ The generated audit is local by design:
360
+
361
+ - `repo_url`, license, default branch, import status
362
+ - imported `.pkt` / `.pka` / README / LICENSE counts
363
+ - decode success and failure counts
364
+ - detected feature tags when decode succeeds
365
+ - license-based candidate promotion status and decode-gated validation status
366
+
367
+ The atlas now distinguishes report-only features, edit-proven features, and donor-backed edit readiness. IPv6/routing, IPv4 routing/NAT/IOS management, a constrained L2 security/monitoring subset, BGP + L2 resiliency IOS text edits, router-based CBAC/ZFW, a narrow WAN/security subset, and a narrow advanced-wireless subset can be edited with explicit commands. Real HTTP/WebSocket, OSPFv3, EIGRP IPv6, RIPng, HSRP, dot1x, ZFW, voice IOS, and selected programming script-file edits are donor-backed-ready proof paths. None of these are claimed as broad generate-ready without acceptance evidence.
368
+
369
+ Support levels used by the atlas:
370
+
371
+ - `not_mapped`: the feature is known as a Packet Tracer area, but this repo does not yet model it.
372
+ - `inventory_known`: the feature can be discovered or inferred from sample/catalog evidence.
373
+ - `report_supported`: prompts and reports can talk about the feature without claiming edits.
374
+ - `edit_proven`: explicit command shapes have editor roundtrip evidence.
375
+ - `donor_backed_ready`: a selected donor or proof-linked explicit edit path can safely carry the capability for a prompt-scoped workflow.
376
+ - `generate_ready`: strict generate support is acceptance-backed for that scenario.
269
377
 
270
378
  Current feature-support truth:
271
379
 
272
380
  | Area | Current status | Safe action |
273
381
  | --- | --- | --- |
274
382
  | Campus / service-heavy / Home IoT / WAN-security scenario families | Donor-aware planning and parity/report surfaces | Use `--explain-plan`, `--compare-scenarios`, and donor proof docs before strict generate claims |
275
- | IPv6/routing | Edit-proven subset | Use explicit router/interface commands; strict generate still needs selected-donor acceptance |
276
- | L2 security/monitoring | Edit-proven subset | Use explicit DHCP snooping, DAI, LLDP, REP, SNMP, NetFlow, SPAN/RSPAN, and port-security commands |
383
+ | IPv6/routing | OSPFv3, EIGRP IPv6, RIPng, and HSRP are donor-backed ready for explicit edit paths; SLAAC and DHCPv6 stateful remain edit-proven; tunneling, ISATAP, prefix delegation, and AAAA DNS remain report-first | Use explicit router/interface commands; strict generate still needs selected-donor acceptance |
384
+ | IPv4 routing/management | OSPFv2, EIGRP IPv4, RIPv2, static/default route, DHCP relay, NAT/PAT, SSH, NTP, and syslog are edit-proven only for explicit IOS text commands | Use named router/interface commands; do not claim route convergence, NAT policy synthesis, or topology generation |
385
+ | L2 security/monitoring | Explicit dot1x is donor-backed ready; QoS and the rest of the explicit L2 subset remain edit-proven | Use explicit DHCP snooping, DAI, dot1x, QoS, LLDP, REP, SNMP, NetFlow, SPAN/RSPAN, and port-security commands |
386
+ | L2 resiliency + BGP | BGP, STP/RSTP, EtherChannel, LACP/PAgP, VTP, and DTP are edit-proven only for explicit IOS text commands | Use named router/switch/interface commands; do not claim topology/link synthesis or protocol convergence |
387
+ | WAN/security edge | Router ZFW is donor-backed ready; GRE, PPP, IPSec, VPN crypto-map, and CBAC are explicit-edit capable; ASA policies and multilayer switching remain report-only | Use explicit router edit commands; strict generate still needs selected-donor acceptance |
277
388
  | Advanced wireless | WEP and WPA Enterprise/RADIUS are explicit-edit capable; WLC, Meraki, cellular, Bluetooth, beamforming, and guest Wi-Fi remain report-only | Keep controller/cellular/Bluetooth claims in atlas/report mode until donor-backed proof exists |
278
- | Voice, automation/controller, industrial IoT, physical/media gaps | Report-supported atlas entries | Do not claim edit/generate support until a proof wave promotes them |
389
+ | Industrial programming | Real HTTP and Real WebSocket existing script files are donor-backed-ready for explicit edits; MQTT, Profinet, PTP, L2NAT, CyberObserver, and industrial firewall remain report-only | Use quoted device/app/file script edit commands only |
390
+ | Automation/controller | Python, JavaScript, and TCP/UDP app files are donor-backed ready through existing script-file replacement; Network Controller, Blockly, and VM/IOx remain report-only | Use quoted device/app/file script edit commands only |
391
+ | Voice/collaboration | IOS `telephony-service`, `ephone-dn`, `ephone`, and `dial-peer voice` commands are donor-backed ready; Linksys voice remains report-only | Use explicit router voice commands; do not claim broad Call Manager or phone GUI generation |
392
+ | Physical/media gaps | Report-supported atlas entries | Do not claim edit/generate support until a proof wave promotes them |
393
+
394
+ The important number is still `generate_ready=0` for the atlas gap families. That is deliberate: visibility comes first, then edit proof, then donor-backed readiness, and only then generate readiness. `donor_backed_ready` is now used for narrow explicit edit paths, not broad topology generation.
279
395
 
280
- The important number is still `generate_ready=0` for the atlas gap families. That is deliberate: visibility comes first, then edit proof, then donor-backed readiness, and only then generate readiness.
396
+ For `--parity-report`, prefer the critical parity counters when reading a scenario-level answer:
397
+ `critical_parity_donor_backed_ready_count` shows proof-linked donor readiness, while `critical_parity_generate_ready_count` only counts capabilities that are critical for the detected scenario family and generate-ready. Treat these `critical_*` counts as the release truth. The older total `parity_generate_ready_count` remains for backward compatibility, but it can include non-critical helper capabilities and should not be read as scenario-level generate readiness.
281
398
 
282
399
  Stable CLI surfaces:
283
400
 
@@ -291,8 +408,8 @@ Stable CLI surfaces:
291
408
  - `--parity-report`
292
409
  - `--acceptance-json-out`
293
410
 
294
- ## Curated Donor and Fixture Truth Sources
295
-
411
+ ## Curated Donor and Fixture Truth Sources
412
+
296
413
  This repository keeps explicit truth sources for donor evidence and scenario regression:
297
414
 
298
415
  - `references/curated-donor-registry.json`
@@ -303,6 +420,8 @@ Curated donor registry reference:
303
420
 
304
421
  - [docs/curated-donor-registry.md](docs/curated-donor-registry.md)
305
422
 
423
+ The registry is not a marketing list. It is a control surface for deciding which donor classes can be trusted for which scenario families. A donor can be useful for inventory and proof while still being rejected for a larger prompt if the skeleton does not safely match the requested topology.
424
+
306
425
  Current selector truth:
307
426
 
308
427
  - a registry-backed donor can be inventory-proof without being prompt-selected
@@ -345,7 +464,7 @@ Primary screenshot:
345
464
 
346
465
  ![Packet Tracer topology](examples/screenshots/complex_campus_master_edit_v4.png)
347
466
 
348
- Hero visual for the `0.2.2` public preview surface:
467
+ Hero visual for the `0.2.3` capability release surface:
349
468
 
350
469
  - `examples/screenshots/complex_campus_master_edit_v4.png`
351
470
 
@@ -356,15 +475,35 @@ Canonical public proof:
356
475
  - [docs/campus-donor-proof.md](docs/campus-donor-proof.md)
357
476
  - [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
358
477
  - [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
478
+ - [docs/l2-resiliency-bgp-proof.md](docs/l2-resiliency-bgp-proof.md)
479
+ - [docs/ipv4-routing-management-proof.md](docs/ipv4-routing-management-proof.md)
480
+ - [docs/l2-security-qos-proof.md](docs/l2-security-qos-proof.md)
481
+ - [docs/security-edge-deepening-proof.md](docs/security-edge-deepening-proof.md)
359
482
 
360
483
  The campus donor proof is intentionally more specific than the gallery cards. It shows that a real donor artifact inventories correctly, but it also shows that a generalized campus prompt can still be donor-limited. That is exactly the kind of nuance the public docs should preserve.
361
484
 
362
485
  The Home IoT donor proof is intentionally narrower than a generic smart-home claim. It shows that donor-backed registration, rule control, and wireless association are integrated only inside a constrained path with explicit targets and a selected donor.
363
486
 
364
- The WAN/security donor proof is also conservative. It shows family-correct report/selection behavior and donor-backed readiness semantics for VPN, IPSec, GRE, PPP, security-edge, and multilayer evidence, but it does not claim broad synthetic WAN/security configuration generation.
487
+ The WAN/security donor proof is also conservative. It shows family-correct report/selection behavior, donor-backed readiness semantics, and a narrow explicit-edit subset for GRE, PPP, IPSec transform-set, and VPN crypto-map skeletons. It does not claim broad synthetic WAN/security configuration generation.
488
+
489
+ The L2 resiliency + BGP proof is IOS text only. It can append explicit `router bgp`, `spanning-tree`, `channel-group`, `vtp`, and `switchport mode dynamic` lines when the router/switch and interfaces are named. It does not create redundant links, validate STP state, prove BGP convergence, or make these capabilities donor-backed/generate-ready.
490
+
491
+ The IPv4 routing/management proof is IOS text only. It can append explicit `router ospf`, `router eigrp`, `router rip`, `ip route`, `ip helper-address`, `ip nat`, `ip ssh`, `ntp server`, and `logging host` lines when the router and interfaces are named. It does not synthesize routing designs, NAT pools, ACL policy, or convergence tests.
492
+
493
+ The L2 security/QoS proof is explicit-command only. It can append IOS-style dot1x and QoS lines when the switch, interface, class-map, policy-map, direction, and optional RADIUS target are explicit. It does not create a full NAC design, supplicant profiles, RADIUS users, or broad QoS policy from intent alone.
494
+
495
+ The security-edge deepening proof is router IOS only. It can append CBAC and ZFW line-based configuration for explicit targets. It does not mutate ASA GUI/internal state, clientless VPN, ASA service-policy, or broad security topology generation.
496
+
497
+ Generate-ready pilot design is intentionally separate from implementation:
498
+
499
+ - [docs/generate-ready-pilot-design.md](docs/generate-ready-pilot-design.md)
500
+
501
+ That document exists to define the first possible acceptance-backed `generate_ready` pilot without opening it in the current batch.
365
502
 
366
503
  The advanced wireless proof is narrower again. It promotes only explicit WEP and WPA Enterprise/RADIUS edit semantics while keeping WLC, Meraki, cellular, Bluetooth, beamforming, and guest Wi-Fi in report-only atlas mode.
367
504
 
505
+ The industrial programming proof is explicit-file-edit only. It can replace an existing Real HTTP or Real WebSocket script file when the device, app, and file names are quoted and uniquely resolved. It does not create apps, files, MQTT brokers, Profinet/PTP/L2NAT workflows, or broad Industrial IoT topologies.
506
+
368
507
  What the proof now tries to surface explicitly:
369
508
 
370
509
  - a real donor exists
@@ -403,16 +542,16 @@ See also:
403
542
 
404
543
  ## Release and Launch State
405
544
 
406
- The npm package release target for this batch is `packet-tracer-skill@0.2.2`. Remaining launch ops are GitHub release application, About/Topics updates, Discussions setup, and public proof follow-up.
545
+ The npm package line is advancing to `packet-tracer-skill@0.2.3`. This release is a capability proof and readiness release, not a broad generate-ready release. The GitHub README, npm README, changelog, release notes, proof docs, and feature atlas should all say the same thing: the skill can recognize more Packet Tracer features, edit more explicit IOS/script surfaces, and report donor-backed readiness for more narrow paths, while still refusing broad unsupported generation.
407
546
 
408
- So the current state is no longer preparing to publish.” The package line is public. The remaining work is about making the public surface honest and complete:
547
+ So the current state is no longer "preparing an experiment." The package line is public and the `0.2.3` release freezes a real capability batch. The remaining launch ops are about making the public surface operationally complete:
409
548
 
410
549
  - GitHub release object should match the published npm state
411
550
  - About/Topics should match the README and launch wording
412
551
  - Discussions should exist as the feedback intake surface
413
552
  - donor proof should exist as the first post-launch technical evidence layer
414
553
 
415
- That is the difference between published and productized.” The current repo is published; these follow-up documents are what make it operationally coherent.
554
+ That is the difference between "published" and "productized." The release can be installed from npm, but GitHub release notes, About/Topics, Discussions, and follow-up proof artifacts are what make it operationally coherent.
416
555
 
417
556
  Recommended local validation before release:
418
557
 
@@ -433,25 +572,56 @@ Launch ops references:
433
572
  - [docs/github-launch-ops-0.2.2.md](docs/github-launch-ops-0.2.2.md)
434
573
  - [docs/post-launch-follow-up.md](docs/post-launch-follow-up.md)
435
574
 
436
- ## Azerbaijani Summary
437
-
438
- Bu repo təbii dil ilə Packet Tracer `.pkt` generate edit etmək üçündür, amma əsas fərqi ondadır ki, bunu donor-backed open-first qayda ilə edir. Yəni donor, parity, acceptanceruntime hazır deyilsə, sistem guess etmir, refusal remediation qaytarır.
439
-
440
- Əsas public səthlər:
441
-
442
- - `--explain-plan`
443
- - `--compare-scenarios`
444
- - `--parity-report`
445
- - `--doctor`
446
- - examples gallery və acceptance excerpt-lər
447
-
448
- Hazırkı prioritet:
449
-
450
- - `0.2.2` public preview hardening
451
- - release-ready və publish-ready surface
452
- - README / npm / GitHub discoverability hizalanması
453
- - scenario truth source, donor registry və runtime doctor contract consistency
454
-
455
- ## License
575
+ ## Azerbaijani Summary
576
+
577
+ Bu repo Cisco Packet Tracer 9.x `.pkt` faylları üçün təbii dilə əsaslanan planlama, analiz, edit, parity hesabatı donor-backed workflow yaradır. Məqsəd sadəcə promptdan topologiya şəkli çıxarmaq deyil. Məqsəd Packet Tracer-in real fayl formatına uyğun, açılan, yoxlanıla bilən səhv olanda səbəbini izah edən daha etibarlı skill təqdim etməkdir.
578
+
579
+ Skill promptu əvvəl scenario family və capability-lərə ayırır, sonra həmin tələbi feature atlas, curated donor registry, runtime doctor, parity report və proof docs ilə yoxlayır. Uyğun donor, runtime bridge, deterministic target və ya acceptance sübutu zəifdirsə, sistem final `.pkt` yaratmaq əvəzinə səbəbli refusal verir. Bu davranış qəsdəndir: faylı korlamaqdansa, nə çatışmadığını və növbəti ən doğru addımı göstərmək daha təhlükəsizdir.
580
+
581
+ Əsas public səthlər:
582
+
583
+ - `--explain-plan`: promptun hansı scenario family və capability-lərə çevrildiyini, hansı donor və readiness qərarlarının verildiyini göstərir.
584
+ - `--compare-scenarios`: bir neçə promptu eyni matrix üzərində müqayisə edir və hansı ailənin report-supported, edit-proven, donor-limited və ya unsupported olduğunu göstərir.
585
+ - `--parity-report`: tələb olunan capability-lərin inventory, edit, donor-backed readiness, generate və acceptance səviyyəsində vəziyyətini izah edir.
586
+ - `--feature-gap-report`: Packet Tracer 9.0-da mövcud olub skill-də hələ tam məhsullaşmamış sahələri atlas/backlog kimi göstərir.
587
+ - `--local-sample-audit-root`: istifadəçinin lokal `.pkt/.pka` nümunə qovluğunu audit edir, decode nəticələrini və capability evidence-ni çıxarır, amma raw faylları repo-ya və npm paketinə daxil etmir.
588
+ - `--doctor`: real `.pkt` runtime üçün Packet Tracer install, donor path, Twofish bridge və blocked/ready operations vəziyyətini yoxlayır.
589
+ - examples gallery və proof docs: screenshot, inventory manifest, acceptance excerpt və donor proof ilə public iddiaları yoxlanıla bilən artefaktlara bağlayır.
590
+
591
+ `0.2.3` release-in əsas dəyəri budur: skill Packet Tracer feature-lərini daha geniş tanıyır, daha çox explicit IOS/script edit path-i roundtrip proof ilə qoruyur və daha çox narrow path üçün donor-backed readiness göstərə bilir. Amma bu release hələ universal generate release deyil. `generate_ready=0` açıq saxlanılır, çünki geniş synthetic generation yalnız single-donor, deterministic inventory və acceptance JSON sübutu ilə açılmalıdır.
592
+
593
+ Hazırda ən güclü sahələr:
594
+
595
+ - campus və service-heavy lab planning, parity və reporting
596
+ - donor-backed Home IoT constrained edits
597
+ - WAN/security edge report və donor-backed readiness semantics
598
+ - WAN/security edge üçün GRE, PPP, IPSec transform-set, VPN crypto-map, router CBAC və ZFW explicit edit semantics
599
+ - IPv6/routing üçün OSPFv3, EIGRP IPv6, RIPng və HSRP donor-backed-ready subset
600
+ - IPv4 routing/NAT/IOS management üçün OSPFv2, EIGRP IPv4, RIPv2, static/default route, DHCP relay, NAT/PAT, SSH, NTP və syslog explicit edit-proven subset
601
+ - L2 security/monitoring üçün DHCP snooping, DAI, dot1x, QoS, SNMP, NetFlow və SPAN kimi explicit edit/report path-lər
602
+ - BGP və L2 resiliency üçün STP/RSTP, EtherChannel/LACP/PAgP, VTP və DTP explicit IOS edit semantics
603
+ - advanced wireless üçün WEP və WPA Enterprise/RADIUS explicit edit semantics
604
+ - automation/controller və industrial programming üçün Python, JavaScript, TCP/UDP, Real HTTP və Real WebSocket existing script-file explicit edits
605
+ - voice/collaboration üçün IOS telephony-service, ephone-dn/ephone və dial-peer voice explicit edit semantics
606
+
607
+ Hələ konservativ saxlanan sahələr:
608
+
609
+ - broad synthetic generate bütün Packet Tracer feature-ləri üçün açıq deyil
610
+ - BGP/STP/EtherChannel/VTP/DTP üçün link/topology synthesis və protocol convergence iddiası edilmir
611
+ - WLC, Meraki, cellular, Bluetooth, beamforming və guest Wi-Fi əsasən report-only qalır
612
+ - Linksys voice, Network Controller GUI, Blockly visual graph, VM/IOx və physical/media feature-lər atlasda görünür, amma edit/generate iddiası almır
613
+ - industrial MQTT, Profinet, PTP, L2NAT, CyberObserver və industrial firewall report-only qalır
614
+ - repo-local self-contained runtime readiness iddia edilmir; external bridge-assisted validation ayrıca göstərilir
615
+ - lokal `pkt_examples` və remote GitHub sample importları evidence source-dur, public curated truth və ya npm package content deyil
616
+
617
+ Hazırkı release prioriteti:
618
+
619
+ - `0.2.3` capability release-i dondurmaq və npm/GitHub ilə hizalamaq
620
+ - README, npm package, changelog, release notes və proof docs arasında terminologiya drift-ni bağlamaq
621
+ - scenario truth source, donor registry və runtime doctor contract consistency-ni qorumaq
622
+ - feature atlas üzərindən Packet Tracer-də qalan bütün boşluqları görünən backlog kimi saxlamaq
623
+ - yeni capability-ləri yalnız inventory proof, edit roundtrip proof, deterministic target resolution və donor-backed acceptance olduqda yüksəltmək
624
+
625
+ ## License
456
626
 
457
- This project is licensed under the MIT License.
627
+ This project is licensed under the MIT License.
@@ -0,0 +1,35 @@
1
+ # Automation Controller Proof
2
+
3
+ This proof covers the narrow automation/controller wave for Packet Tracer programming surfaces. It is explicit script-file edit proof, not Network Controller GUI synthesis or broad automation topology generation.
4
+
5
+ ## What This Proves
6
+
7
+ - Inventory can report existing Python, JavaScript, Blockly, and TCP/UDP app files without dumping full source code.
8
+ - Existing Python and JavaScript script files can be replaced when the prompt quotes the device name, app name, and file name.
9
+ - TCP/UDP test app JavaScript files can be edited through the same deterministic existing-file path.
10
+ - `python_programming`, `javascript_programming`, and `tcp_udp_app` can be treated as `edit_proven` for explicit script-file edits.
11
+ - `python_programming`, `javascript_programming`, and `tcp_udp_app` are `donor_backed_ready` for explicit existing-file edits because the proof gate has sample, decode, parser, and editor roundtrip evidence.
12
+
13
+ ## What This Does Not Prove
14
+
15
+ - It does not create Network Controller projects, apps, or files.
16
+ - It does not mutate Blockly visual graphs beyond inventory/report truth.
17
+ - It does not create or run VM/IOx workloads.
18
+ - It does not synthesize controller policies, REST workflows, or TCP/UDP applications from a broad prompt.
19
+ - It does not make any automation/controller feature `generate_ready`.
20
+
21
+ ## Explicit Edit Shape
22
+
23
+ ```text
24
+ set "python" script app "New Project (Python)" file "main.py" content "print(\"ok\")"
25
+ set "javascript" script app "New Project (JavaScript)" file "main.js" content "console.log(\"ok\")"
26
+ set "PC0" script app "tcpServer" file "tcpServer.js" content "console.log(\"tcp\")"
27
+ ```
28
+
29
+ The editor refuses ambiguous or missing device/app/file targets. It replaces only existing file content and does not guess app names or create new programming surfaces.
30
+
31
+ ## Product Contract
32
+
33
+ - `python_programming`, `javascript_programming`, and `tcp_udp_app` can report `edit_supported=true` and `donor_backed_ready=true` only for explicit existing-file edit commands.
34
+ - `network_controller`, `blockly_programming`, and `vm_iox` remain report-only.
35
+ - All automation/controller features keep `generate_supported=false` until separate donor-backed acceptance evidence exists.
@@ -59,6 +59,17 @@ Those are related, but they are not the same claim.
59
59
  - registry-backed metadata overrides inferred metadata where the registry is more explicit
60
60
  - validation can still demote a registry entry if the actual donor is blocked or incompatible
61
61
 
62
+ ## Remote Sample Promotion Rules
63
+
64
+ GitHub sample ingestion is a local developer workflow, not a direct registry promotion path.
65
+
66
+ - remote `.pkt` and `.pka` files are imported only into `output/remote-import-cache`
67
+ - unknown, missing, or non-permissive license metadata stays `reference_only`
68
+ - permissive-license metadata can only create a `validated_curated` candidate after decode and inventory validation
69
+ - decode-fail samples can be recorded in `remote-sample-audit.json`, but they cannot create donor eligibility
70
+ - no remote sample becomes `acceptance_verified_curated` without checked acceptance fixtures and proof notes
71
+ - raw remote `.pkt` files are not committed and are not packed into npm artifacts
72
+
62
73
  ## Evidence Sources
63
74
 
64
75
  Selected donor summaries distinguish:
@@ -0,0 +1,30 @@
1
+ # Generate-Ready Pilot Design
2
+
3
+ This is a design artifact only. It does not enable `generate_ready`.
4
+
5
+ ## Candidate
6
+
7
+ The first safe pilot should use a narrow campus or service-heavy flow that already has fixture and donor evidence. The preferred pilot is `campus_core_complex` with a single `campus/core` donor class.
8
+
9
+ ## Required Gate
10
+
11
+ The pilot can only move to implementation when all of these are true:
12
+
13
+ - exactly one scenario family is in scope
14
+ - exactly one donor class is allowed
15
+ - exactly one fixture name is used as the regression truth source
16
+ - target inventory is deterministic
17
+ - final `.pkt` apply remains `single-donor`
18
+ - acceptance JSON proves openability, inventory expectations, parity expectations, and decision status
19
+
20
+ ## Explicit Non-Goals
21
+
22
+ - no L2/QoS generate-ready pilot
23
+ - no ASA/security generate-ready pilot
24
+ - no WLC/controller generate-ready pilot
25
+ - no broad topology synthesis
26
+ - no fallback guessed output when donor selection or acceptance is weak
27
+
28
+ ## Next Step
29
+
30
+ Before implementation, add a short acceptance fixture proposal that names the donor path, expected inventory excerpt, expected parity excerpt, and the refusal condition when that donor is absent.
@@ -0,0 +1,48 @@
1
+ # Industrial Programming Proof
2
+
3
+ This proof covers the narrow Packet Tracer programming surface promoted after the `0.2.2` baseline. It is intentionally donor-backed edit readiness, not generate-first support.
4
+
5
+ ## What This Proves
6
+
7
+ - Real HTTP and Real WebSocket samples expose stable existing script files in Packet Tracer XML.
8
+ - Inventory can report programming apps without dumping full source code.
9
+ - Explicit quoted commands can replace an existing script file when device, app, and file names are unique.
10
+ - Real HTTP and Real WebSocket can be treated as `edit_proven` for deterministic script-file edits.
11
+ - Real HTTP and Real WebSocket are the first `donor_backed_ready` atlas entries because they pass a validated proof gate: sample-backed inventory, decode evidence, explicit target resolution, and editor roundtrip proof.
12
+
13
+ ## What This Does Not Prove
14
+
15
+ - It does not claim broad Industrial IoT topology generation.
16
+ - It does not create new apps, new files, MQTT brokers, WebSocket servers, or Real HTTP services.
17
+ - It does not claim MQTT protocol mutation, Profinet, PTP, L2NAT, CyberObserver, or industrial firewall edit support.
18
+ - It does not make any industrial programming feature `generate_ready`.
19
+ - It does not create a new app or file when a donor lacks the named script target.
20
+
21
+ ## Explicit Edit Command Shape
22
+
23
+ ```text
24
+ set "Py: real http server 2" script app "New Project (Python)" file "main.py" content "from realhttp import *\nprint(\"ok\")"
25
+ set "WebSockets Client" script app "ws client (Python)" file "main.py" content "from realhttp import *\nclient = RealWSClient()\nprint(\"ok\")"
26
+ ```
27
+
28
+ The command is quoted on purpose. Packet Tracer app and device names often contain spaces, punctuation, and parentheses. Unquoted script mutation is not supported.
29
+
30
+ ## Donor-Backed Readiness Boundary
31
+
32
+ `donor_backed_ready` means the skill can safely apply an explicit existing-file script edit when the donor already contains the named device, app, and file. It does not mean broad prompt generation is ready.
33
+
34
+ Readiness requires all of these to be true:
35
+
36
+ - the feature is `real_http` or `real_websocket`
37
+ - the command quotes a device name, app name, existing file name, and replacement content
38
+ - inventory resolves exactly one matching target
39
+ - the editor roundtrip test proves the file content can be replaced and decoded again
40
+ - no new app, new file, MQTT broker, HTTP service, or WebSocket service is synthesized
41
+
42
+ ## Public Contract
43
+
44
+ - `real_http`, `real_websocket`, `python_programming`, and `javascript_programming` can report `edit_supported=true` only for explicit existing-file edits.
45
+ - `real_http` and `real_websocket` can report `donor_backed_ready=true` for explicit existing-file edits.
46
+ - `generate_supported=false` remains the expected result.
47
+ - `generate_mismatch_reason=supported_in_edit_only` is the intended parity wording.
48
+ - `mqtt`, `visual_scripting`, `ptp`, `profinet`, `l2nat`, `cyberobserver`, and `industrial_firewall` remain report-only until separate roundtrip proof exists.
@@ -0,0 +1,37 @@
1
+ # IPv4 Routing and IOS Management Proof
2
+
3
+ This proof wave uses the local user-supplied `pkt_examples` corpus as evidence input, not as public package content. The corpus contains many decodeable Packet Tracer labs with IPv4 routing, NAT/PAT, SSH, NTP, syslog, DHCP relay, and classic CCNA management patterns.
4
+
5
+ ## What Is Edit-Proven
6
+
7
+ The supported subset is explicit IOS `RUNNINGCONFIG` mutation only:
8
+
9
+ - OSPFv2 via `router ospf <process>` with `network <network> <wildcard> area <area>`
10
+ - `router eigrp <asn>` with IPv4 `network` and optional `no auto-summary`
11
+ - `router rip` with `version 2`, IPv4 `network`, and optional `no auto-summary`
12
+ - `ip route <network> <mask> <next-hop>` including default route
13
+ - interface-level `ip helper-address`
14
+ - interface-level `ip nat inside` and `ip nat outside`
15
+ - `ip nat inside source static <inside-local> <inside-global>`
16
+ - PAT overload with `ip nat inside source list <acl> interface <interface> overload`
17
+ - IOS SSH setup with domain, username/password, RSA modulus, and `ip ssh version 2`
18
+ - IOS `ntp server` and `logging host`
19
+
20
+ ## What This Proves
21
+
22
+ - The parser can classify IPv4 routing and management prompts as `ipv4_routing_management`.
23
+ - Explicit commands produce deterministic router operations.
24
+ - Existing IOS text config surfaces can roundtrip these command shapes.
25
+ - Parity can show these capabilities as `edit_supported=true`, `generate_supported=false`, and `generate_mismatch_reason=supported_in_edit_only`.
26
+ - Local sample audit can summarize user-supplied `.pkt/.pka` evidence without committing raw Packet Tracer files.
27
+
28
+ ## What This Does Not Prove
29
+
30
+ - It does not make any IPv4 routing, NAT, or IOS management capability `generate_ready`.
31
+ - It does not synthesize topology, links, ACL objects, NAT pools, route convergence, or lab scoring.
32
+ - It does not promote local `pkt_examples` files into curated public donors.
33
+ - It does not mutate GUI/internal Packet Tracer state.
34
+
35
+ ## Safe Next Step
36
+
37
+ The next promotion step is donor-backed readiness for a narrow single-donor IPv4 routing fixture, only after selected-donor evidence, deterministic targets, and acceptance JSON prove the resulting `.pkt` opens and matches expected inventory/parity.