packet-tracer-skill 0.2.1 → 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.
Files changed (43) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/README.md +443 -124
  3. package/docs/automation-controller-proof.md +35 -0
  4. package/docs/campus-donor-proof.md +103 -0
  5. package/docs/curated-donor-registry.md +37 -0
  6. package/docs/generate-ready-pilot-design.md +30 -0
  7. package/docs/github-launch-ops-0.2.1.md +45 -0
  8. package/docs/github-launch-ops-0.2.2.md +42 -0
  9. package/docs/github-metadata.md +23 -6
  10. package/docs/home-iot-donor-proof.md +64 -0
  11. package/docs/industrial-programming-proof.md +48 -0
  12. package/docs/ipv4-routing-management-proof.md +37 -0
  13. package/docs/l2-resiliency-bgp-proof.md +60 -0
  14. package/docs/l2-security-qos-proof.md +59 -0
  15. package/docs/launch-announcement-0.2.2.md +15 -0
  16. package/docs/packet-tracer-feature-gap-atlas.md +244 -0
  17. package/docs/post-launch-follow-up.md +39 -0
  18. package/docs/publish-preview-roadmap.md +20 -17
  19. package/docs/release-checklist.md +32 -17
  20. package/docs/release-notes-0.2.1.md +7 -6
  21. package/docs/release-notes-0.2.2.md +26 -0
  22. package/docs/release-notes-0.2.3.md +59 -0
  23. package/docs/runtime-truth.md +31 -0
  24. package/docs/security-edge-deepening-proof.md +65 -0
  25. package/docs/voice-collaboration-proof.md +38 -0
  26. package/docs/wan-security-donor-proof.md +58 -0
  27. package/docs/wireless-advanced-proof.md +60 -0
  28. package/examples/README.md +11 -8
  29. package/examples/gallery.md +9 -3
  30. package/examples/index.json +3 -3
  31. package/package.json +20 -1
  32. package/references/curated-donor-registry.json +5 -2
  33. package/references/packettracer-feature-atlas.json +183 -0
  34. package/references/scenario-fixture-corpus.json +1 -0
  35. package/scripts/build_examples_index.py +26 -15
  36. package/scripts/coverage_matrix.py +1054 -25
  37. package/scripts/feature_atlas.py +293 -0
  38. package/scripts/generate_pkt.py +491 -34
  39. package/scripts/intent_parser.py +798 -8
  40. package/scripts/pkt_editor.py +651 -0
  41. package/scripts/remote_search.py +197 -21
  42. package/scripts/runtime_doctor.py +83 -10
  43. package/scripts/sample_catalog.py +266 -6
@@ -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.
@@ -0,0 +1,103 @@
1
+ # Campus Donor Proof
2
+
3
+ ## Proof Goal
4
+
5
+ Show one honest public proof artifact for the canonical `campus` family without claiming full synthetic generation.
6
+
7
+ ## Real Donor Artifact
8
+
9
+ - registry entry: `complex_campus_master_edit_v4.pkt`
10
+ - proof source: a local donor file matching that registry entry name in the ignored working `output/` area
11
+ - runtime mode used for the proof: Windows Packet Tracer 9.0 with an external bridge override
12
+
13
+ ## Inventory Smoke Result
14
+
15
+ The matched donor file decoded and inventoried successfully.
16
+
17
+ Observed topology summary:
18
+
19
+ - `6` switches
20
+ - `1` router
21
+ - `2` servers
22
+ - `5` printers
23
+ - `5` wireless routers
24
+ - `40` PCs
25
+ - `58` links
26
+ - services present
27
+ - wireless present
28
+ - VLANs present
29
+
30
+ Observed management and security details:
31
+
32
+ - management VLANs are present on the campus switches
33
+ - Telnet is enabled on the campus switches
34
+ - ACL `MGMT_ONLY` is present on the router
35
+ - DHCP pools, DNS, email, syslog, AAA, and wireless service state are visible in inventory
36
+
37
+ ## Planner Result for a Generalized Campus Prompt
38
+
39
+ Prompt used for the public proof check:
40
+
41
+ `6 sobeli kampus sebekesi qur, VLAN 10 20 30 40 50 60 ve management VLAN 99 yarat, telnet, acl, nat, wireless ap ve printer elave et`
42
+
43
+ Observed decision result:
44
+
45
+ - `family=campus`
46
+ - `status=blocked_by_donor_selection`
47
+ - `selection_failure_type=viable_donor_found_but_acceptance_weak`
48
+ - `best_available_donor_class=campus/core`
49
+ - `best_rejected_donor_class=campus/core`
50
+ - `primary_rejection_layer=donor`
51
+ - `primary_rejection_code=layout_reuse_too_weak`
52
+ - `candidate_counts.selected=0`
53
+ - `candidate_counts.filtered=269`
54
+
55
+ Top rejection reasons:
56
+
57
+ - donor graph has no reusable link pairs for the requested topology
58
+ - sample reuses too little of the requested link skeleton
59
+ - `missing_link_pairs:6`
60
+
61
+ Closest rejected donor summary:
62
+
63
+ - the closest donor class is still `campus/core`
64
+ - registry-backed donor evidence exists for that class
65
+ - prompt-level selection still refuses it because reusable link skeleton quality is too weak
66
+
67
+ ## What This Proves
68
+
69
+ - a real donor path exists for the canonical campus proof artifact
70
+ - donor inventory works
71
+ - planner refusal is still explicit and deterministic
72
+ - the blocker for the generalized campus prompt is donor selection quality
73
+
74
+ ## What This Does Not Prove
75
+
76
+ - it does not prove synthetic campus generation is solved
77
+ - it does not prove every campus prompt is generate-ready
78
+ - it does not prove runtime was the blocker for this prompt
79
+ - it does not make registry-backed donor evidence equivalent to prompt-level donor selection
80
+
81
+ ## Interpretation
82
+
83
+ This proof means two different things at once:
84
+
85
+ - a real campus donor artifact exists and inventories correctly
86
+ - the current planner still refuses to select a donor for the larger six-department campus prompt when the reusable link skeleton is too weak
87
+
88
+ That refusal is the correct product behavior. In this proof run, runtime was not the blocking layer. Donor selection quality was.
89
+
90
+ The shorthand campus classifier should still resolve this prompt family as `campus`; the refusal should be read as donor-limited campus semantics, not as a service-heavy family drift.
91
+
92
+ ## Public Message Guardrail
93
+
94
+ Say:
95
+
96
+ - donor-backed campus donor proof exists
97
+ - real donor inventory works
98
+ - generalized campus generation can still be donor-limited
99
+
100
+ Do not say:
101
+
102
+ - the campus prompt is fully generate-ready
103
+ - the donor proof implies synthetic topology generation is solved
@@ -33,6 +33,25 @@ The current seeded entries are based on known working example artifacts:
33
33
 
34
34
  These entries become active when a donor root contains matching relative paths or filenames.
35
35
 
36
+ Current public proof reference:
37
+
38
+ - `docs/campus-donor-proof.md`
39
+ - `docs/home-iot-donor-proof.md`
40
+ - `docs/wan-security-donor-proof.md`
41
+
42
+ This is intentionally separate from the registry file. A registry-backed donor may still be refused for a generalized prompt if the reusable link skeleton is too weak.
43
+
44
+ Important proof semantics:
45
+
46
+ - registry entry exists
47
+ Means the donor metadata is explicit and checked in.
48
+ - inventory-proof donor exists
49
+ Means a real donor artifact matched that entry and passed inventory smoke.
50
+ - selected donor exists
51
+ Means prompt-level selector and runtime constraints both accepted it for the current request.
52
+
53
+ Those are related, but they are not the same claim.
54
+
36
55
  ## Promotion Rules
37
56
 
38
57
  - `reference_only` never becomes the final selected donor
@@ -40,6 +59,17 @@ These entries become active when a donor root contains matching relative paths o
40
59
  - registry-backed metadata overrides inferred metadata where the registry is more explicit
41
60
  - validation can still demote a registry entry if the actual donor is blocked or incompatible
42
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
+
43
73
  ## Evidence Sources
44
74
 
45
75
  Selected donor summaries distinguish:
@@ -49,3 +79,10 @@ Selected donor summaries distinguish:
49
79
  - mixed `registry+inferred` evidence
50
80
 
51
81
  This is important for auditability and release messaging.
82
+
83
+ Rejected donor summaries should preserve the same distinction. A closest rejected donor class can still be registry-backed while prompt-level donor selection remains blocked by:
84
+
85
+ - `layout_reuse_too_weak`
86
+ - `acceptance_evidence_too_weak`
87
+ - `archetype_misaligned`
88
+ - `runtime_subtree_missing`
@@ -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,45 @@
1
+ # GitHub Launch Ops for `v0.2.1`
2
+
3
+ ## Current Status
4
+
5
+ - npm package `packet-tracer-skill@0.2.1` is already published
6
+ - release body source is ready: `docs/release-notes-0.2.1.md`
7
+ - About text and Topics source are ready: `docs/github-metadata.md`
8
+ - hero visual is fixed: `examples/screenshots/complex_campus_master_edit_v4.png`
9
+ - GitHub release object and Discussions setup still require manual UI work because `gh` is not installed in the current environment
10
+
11
+ ## Exact GitHub Release Steps
12
+
13
+ 1. Ensure tag `v0.2.1` exists and points to the publish commit.
14
+ 2. Open GitHub Releases for `20hajiyev/packet-tracer-skill`.
15
+ 3. Create a new release from tag `v0.2.1`.
16
+ 4. Use title `v0.2.1`.
17
+ 5. Paste the body from `docs/release-notes-0.2.1.md`.
18
+ 6. Do not upload raw `.pkt` binaries or local bridge artifacts.
19
+ 7. Keep the first visual aligned with `examples/screenshots/complex_campus_master_edit_v4.png`.
20
+
21
+ ## About and Topics
22
+
23
+ Apply the exact text from `docs/github-metadata.md`:
24
+
25
+ - `Final About Text`
26
+ - `Final Topics`
27
+
28
+ Do not rewrite these ad hoc in the UI. The doc is the source of truth.
29
+
30
+ ## Discussions
31
+
32
+ Enable Discussions and create these categories:
33
+
34
+ - `Showcase`
35
+ - `Q&A`
36
+ - `Donor Requests`
37
+ - `Capability Roadmap`
38
+
39
+ ## Launch Message Sources
40
+
41
+ Use:
42
+
43
+ - `docs/release-notes-0.2.1.md` for the release body
44
+ - `docs/launch-announcement-0.2.1.md` for the npm/GitHub/social wording
45
+ - `docs/hero-demo-plan.md` for the screenshot caption and demo claim guardrails
@@ -0,0 +1,42 @@
1
+ # GitHub Launch Ops for `v0.2.2`
2
+
3
+ ## Current Status
4
+
5
+ - npm package target is `packet-tracer-skill@0.2.2`
6
+ - release body source is ready: `docs/release-notes-0.2.2.md`
7
+ - launch wording source is ready: `docs/launch-announcement-0.2.2.md`
8
+ - About text and Topics source remain: `docs/github-metadata.md`
9
+ - hero visual remains fixed: `examples/screenshots/complex_campus_master_edit_v4.png`
10
+
11
+ ## Exact GitHub Release Steps
12
+
13
+ 1. Ensure tag `v0.2.2` exists and points to the publish commit.
14
+ 2. Open GitHub Releases for `20hajiyev/packet-tracer-skill`.
15
+ 3. Create a new release from tag `v0.2.2`.
16
+ 4. Use title `v0.2.2`.
17
+ 5. Paste the body from `docs/release-notes-0.2.2.md`.
18
+ 6. Do not upload raw `.pkt` binaries or local bridge artifacts.
19
+ 7. Keep the first visual aligned with `examples/screenshots/complex_campus_master_edit_v4.png`.
20
+
21
+ ## About and Topics
22
+
23
+ Apply the exact text from `docs/github-metadata.md`.
24
+
25
+ Do not rewrite these ad hoc in the UI. The doc is the source of truth.
26
+
27
+ ## Discussions
28
+
29
+ If Discussions are not already enabled, enable them and create these categories:
30
+
31
+ - `Showcase`
32
+ - `Q&A`
33
+ - `Donor Requests`
34
+ - `Capability Roadmap`
35
+
36
+ ## Launch Message Sources
37
+
38
+ Use:
39
+
40
+ - `docs/release-notes-0.2.2.md` for the release body
41
+ - `docs/launch-announcement-0.2.2.md` for the npm/GitHub/social wording
42
+ - `docs/hero-demo-plan.md` for the screenshot caption and demo claim guardrails
@@ -21,13 +21,30 @@ Donor-backed Cisco Packet Tracer 9.x skill for natural-language planning, safe-o
21
21
 
22
22
  Use the complex campus Packet Tracer screenshot as the first public visual until a dedicated hero demo GIF is ready.
23
23
 
24
- Pinned screenshot:
25
-
26
- - `examples/screenshots/complex_campus_master_edit_v4.png`
24
+ Pinned screenshot:
25
+
26
+ - `examples/screenshots/complex_campus_master_edit_v4.png`
27
+
28
+ Pinned caption:
29
+
30
+ - `donor-backed complex campus proof artifact for the 0.2.2 public preview`
31
+
32
+ ## Release Source
33
+
34
+ - release title: `v0.2.2`
35
+ - release body source: `docs/release-notes-0.2.2.md`
36
+ - launch wording source: `docs/launch-announcement-0.2.2.md`
37
+
38
+ ## Discussions Categories
39
+
40
+ - `Showcase`
41
+ - `Q&A`
42
+ - `Donor Requests`
43
+ - `Capability Roadmap`
27
44
 
28
45
  ## Public Message Guardrails
29
46
 
30
47
  - say `donor-backed`, `open-first`, `scenario-aware`, and `Windows-first runtime`
31
- - say `validated with external bridge override` when referring to strict runtime validation
32
- - do not say the repo is self-contained runtime-ready unless doctor semantics change
33
- - keep README, release notes, and GitHub About text aligned with the same wording
48
+ - say `validated with external bridge override` when referring to strict runtime validation
49
+ - do not say the repo is self-contained runtime-ready unless doctor semantics change
50
+ - keep README, release notes, and GitHub About text aligned with the same wording
@@ -0,0 +1,64 @@
1
+ # Home IoT Donor Proof
2
+
3
+ ## Proof Goal
4
+
5
+ Show one honest public proof artifact for the canonical `home_iot` family without claiming broad synthetic smart-home generation.
6
+
7
+ ## Real Donor-Backed Artifacts
8
+
9
+ - registry entry: `home_iot_cli_edit_v1.pkt`
10
+ - proof sources:
11
+ - local inventory from the ignored donor-backed showcase lab
12
+ - checked-in edit roundtrip tests for `iot_registration_server.pkt`, `iot_home_gateway.pkt`, and wireless association donors
13
+ - runtime mode used for the proof: Windows Packet Tracer 9.0 with an external bridge override
14
+
15
+ ## Inventory and Edit Proof
16
+
17
+ Observed Home IoT proof facts:
18
+
19
+ - a Home Gateway donor path exists
20
+ - IoT thing inventory is visible
21
+ - gateway-backed registration state is visible in inventory
22
+ - edit roundtrip preserves:
23
+ - IoT registration to Home Gateway
24
+ - IoT registration to registration server
25
+ - IoT rule enable/disable state
26
+ - donor-backed wireless association
27
+
28
+ ## Donor-Backed Generate Interpretation
29
+
30
+ The current product contract for Home IoT is intentionally narrow:
31
+
32
+ - `iot_registration`, `iot_control`, and `wireless_client_association` are only considered generate-ready when a selected donor exists
33
+ - the selected donor must match `IoT/home gateway` or a compatible `wireless-heavy` shape
34
+ - the prompt must name deterministic targets such as the thing, gateway/server, client, AP/router, and SSID
35
+
36
+ This is why the public wording uses `donor-backed constrained-generate` rather than broad `smart home generate-ready`.
37
+
38
+ ## What This Proves
39
+
40
+ - Home IoT inventory proof exists
41
+ - edit roundtrip proof exists for registration, control, and wireless association
42
+ - donor-backed Home IoT readiness can be raised without guessed output
43
+ - the intended blocker split remains explicit: donor selection vs acceptance vs runtime
44
+
45
+ ## What This Does Not Prove
46
+
47
+ - it does not prove free-form smart-home topology generation is solved
48
+ - it does not prove every prompt mentioning IoT registration is generate-ready
49
+ - it does not remove the need for a selected donor and deterministic target resolution
50
+ - it does not promote WAN/security features ahead of the next wave
51
+
52
+ ## Public Message Guardrail
53
+
54
+ Say:
55
+
56
+ - donor-backed Home IoT proof exists
57
+ - registration/control and wireless association are integrated only inside a constrained donor-backed path
58
+ - explicit target naming still matters
59
+
60
+ Do not say:
61
+
62
+ - all IoT support is solved
63
+ - any smart-home prompt can now generate a correct `.pkt`
64
+ - donor-backed proof makes runtime or selector constraints disappear
@@ -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.
@@ -0,0 +1,60 @@
1
+ # L2 Resiliency + BGP Proof Wave
2
+
3
+ This proof wave uses the local user-supplied `pkt_examples` corpus as evidence input only. Raw `.pkt` files, imported caches, and `output/pkt_examples_audit.json` are not package or repository artifacts.
4
+
5
+ ## What Is Covered
6
+
7
+ The wave adds parser, inventory, catalog, atlas, and parity truth for:
8
+
9
+ - `bgp`
10
+ - `stp`
11
+ - `rstp`
12
+ - `etherchannel`
13
+ - `lacp`
14
+ - `pagp`
15
+ - `vtp`
16
+ - `dtp`
17
+
18
+ These capabilities are constrained to IOS text configuration surfaces. They are not broad topology generation features.
19
+
20
+ ## Explicit Edit Commands
21
+
22
+ Supported edit-proof command shapes:
23
+
24
+ ```powershell
25
+ python scripts/generate_pkt.py --parity-report "set R1 bgp 65001 neighbor 10.0.0.2 remote-as 65002 network 192.168.1.0 mask 255.255.255.0"
26
+ python scripts/generate_pkt.py --parity-report "set SW1 stp mode rapid-pvst vlan 10 root primary"
27
+ python scripts/generate_pkt.py --parity-report "set SW1 etherchannel 1 mode active interfaces FastEthernet0/1 FastEthernet0/2"
28
+ python scripts/generate_pkt.py --parity-report "set SW1 etherchannel 2 mode desirable interfaces FastEthernet0/3 FastEthernet0/4"
29
+ python scripts/generate_pkt.py --parity-report "set SW1 vtp domain CAMPUS mode server version 2"
30
+ python scripts/generate_pkt.py --parity-report "set SW1 dtp interface FastEthernet0/1 mode dynamic desirable"
31
+ ```
32
+
33
+ ## Target Rules
34
+
35
+ - The target device name must be explicit.
36
+ - Interface names must be explicit where an interface command is used.
37
+ - Only existing device configuration text is mutated.
38
+ - No GUI/internal Packet Tracer state is guessed.
39
+ - No links, modules, devices, or topology shape are synthesized in this wave.
40
+
41
+ ## What This Proves
42
+
43
+ - BGP neighbor/network IOS text can be parsed and written deterministically.
44
+ - The editor writes a `router bgp` block with explicit `neighbor ... remote-as` and optional `network ... mask` lines.
45
+ - STP/RSTP can be detected separately from SPAN/RSPAN through explicit `spanning-tree` lines.
46
+ - EtherChannel can be represented through explicit `channel-group` and `Port-channel` text.
47
+ - LACP/PAgP are derived from explicit EtherChannel modes.
48
+ - VTP and DTP line shapes can be parsed, inventoried, and roundtripped as IOS text.
49
+
50
+ ## What This Does Not Prove
51
+
52
+ - It does not prove full BGP peering convergence.
53
+ - It does not prove STP state simulation correctness.
54
+ - It does not create or validate physical redundant links.
55
+ - It does not make these capabilities `donor_backed_ready`.
56
+ - It does not make any of these capabilities `generate_ready`.
57
+
58
+ ## Current Product Status
59
+
60
+ The atlas status for this wave is `edit_proven` when roundtrip tests exist. `generate_ready=0` remains intentional until a single-donor acceptance fixture proves a strict safe-open generate path.
@@ -0,0 +1,59 @@
1
+ # L2 Security and QoS Proof
2
+
3
+ This proof records the `0.2.3` candidate L2 security/QoS edit-proven subset. It is intentionally narrow: the skill can append deterministic IOS-style switch configuration lines for explicitly named targets, but it does not synthesize a full NAC or QoS design from a broad prompt.
4
+
5
+ ## Explicit Commands
6
+
7
+ Supported explicit edit shapes:
8
+
9
+ ```text
10
+ set SW1 dot1x interface FastEthernet0/1 mode auto radius 192.168.1.10 key radius123
11
+ set SW1 qos class-map VOICE match dscp ef policy-map QOS_POLICY class VOICE priority service-policy output FastEthernet0/1
12
+ ```
13
+
14
+ The dot1x command writes:
15
+
16
+ ```text
17
+ aaa new-model
18
+ dot1x system-auth-control
19
+ radius-server host 192.168.1.10 key radius123
20
+ interface FastEthernet0/1
21
+ authentication port-control auto
22
+ dot1x pae authenticator
23
+ ```
24
+
25
+ The QoS command writes:
26
+
27
+ ```text
28
+ mls qos
29
+ class-map match-any VOICE
30
+ match dscp ef
31
+ policy-map QOS_POLICY
32
+ class VOICE
33
+ priority
34
+ interface FastEthernet0/1
35
+ service-policy output QOS_POLICY
36
+ ```
37
+
38
+ ## Donor-Backed Readiness
39
+
40
+ - `dot1x` is `donor_backed_ready` because it has parser, catalog, decode-verified sample, and editor roundtrip evidence.
41
+ - `qos` remains `edit_proven` rather than `donor_backed_ready` because the current QoS sample evidence is path-backed but not decode-verified in the atlas gate.
42
+
43
+ ## What This Proves
44
+
45
+ - `dot1x` and `qos` are parser-recognized as `l2_security_monitoring`.
46
+ - Explicit dot1x and QoS commands roundtrip through Packet Tracer XML config text.
47
+ - Parity reports mark these capabilities as `edit_supported=true`, `generate_supported=false`, and `generate_mismatch_reason=supported_in_edit_only`.
48
+ - The feature atlas can classify dot1x as `donor_backed_ready` and QoS as `edit_proven` when the proof gate is evaluated.
49
+
50
+ ## What This Does Not Prove
51
+
52
+ - This does not make dot1x or QoS `generate_ready`.
53
+ - This does not create RADIUS server users, certificates, supplicant profiles, policy discovery, or end-to-end NAC validation.
54
+ - This does not generate QoS classes from traffic intent; class-map, policy-map, direction, and interface must be explicit.
55
+ - This does not prove every Packet Tracer switch model accepts every IOS line.
56
+
57
+ ## Safe Next Step
58
+
59
+ The next promotion would require selected-donor proof with a reusable L2 security/monitoring skeleton and acceptance fixtures. Until then, broad prompts such as `dot1x qos policy class-map policy-map` remain report/plan evidence, while explicit commands use the edit-only path.
@@ -0,0 +1,15 @@
1
+ # `0.2.2` Launch Announcement Draft
2
+
3
+ ## npm Publish Announcement
4
+
5
+ `packet-tracer-skill 0.2.2` is live on npm.
6
+
7
+ This patch tightens runtime setup documentation and adds an advanced wireless feature wave: WEP and WPA Enterprise/RADIUS are edit-proven for explicit deterministic targets, while WLC, Meraki, cellular, Bluetooth, beamforming, and guest Wi-Fi remain report-only.
8
+
9
+ ## GitHub Release Intro
10
+
11
+ `0.2.2` is a conservative public preview patch release. It keeps the donor-backed, open-first Packet Tracer workflow intact while improving runtime setup clarity and aligning advanced wireless parser, atlas, parity, and proof docs.
12
+
13
+ ## Short Social Summary
14
+
15
+ Published `packet-tracer-skill@0.2.2`: README runtime cleanup, generic Twofish bridge guidance, and advanced wireless atlas/edit-proof support for WEP and WPA Enterprise/RADIUS. Windows-first runtime, validated with external bridge override.