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.
- package/CHANGELOG.md +53 -2
- package/README.md +443 -124
- package/docs/automation-controller-proof.md +35 -0
- package/docs/campus-donor-proof.md +103 -0
- package/docs/curated-donor-registry.md +37 -0
- package/docs/generate-ready-pilot-design.md +30 -0
- package/docs/github-launch-ops-0.2.1.md +45 -0
- package/docs/github-launch-ops-0.2.2.md +42 -0
- package/docs/github-metadata.md +23 -6
- package/docs/home-iot-donor-proof.md +64 -0
- 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/launch-announcement-0.2.2.md +15 -0
- package/docs/packet-tracer-feature-gap-atlas.md +244 -0
- package/docs/post-launch-follow-up.md +39 -0
- package/docs/publish-preview-roadmap.md +20 -17
- package/docs/release-checklist.md +32 -17
- package/docs/release-notes-0.2.1.md +7 -6
- package/docs/release-notes-0.2.2.md +26 -0
- package/docs/release-notes-0.2.3.md +59 -0
- package/docs/runtime-truth.md +31 -0
- package/docs/security-edge-deepening-proof.md +65 -0
- package/docs/voice-collaboration-proof.md +38 -0
- package/docs/wan-security-donor-proof.md +58 -0
- package/docs/wireless-advanced-proof.md +60 -0
- package/examples/README.md +11 -8
- package/examples/gallery.md +9 -3
- package/examples/index.json +3 -3
- package/package.json +20 -1
- package/references/curated-donor-registry.json +5 -2
- package/references/packettracer-feature-atlas.json +183 -0
- package/references/scenario-fixture-corpus.json +1 -0
- package/scripts/build_examples_index.py +26 -15
- package/scripts/coverage_matrix.py +1054 -25
- package/scripts/feature_atlas.py +293 -0
- package/scripts/generate_pkt.py +491 -34
- package/scripts/intent_parser.py +798 -8
- package/scripts/pkt_editor.py +651 -0
- package/scripts/remote_search.py +197 -21
- package/scripts/runtime_doctor.py +83 -10
- 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
|
package/docs/github-metadata.md
CHANGED
|
@@ -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.
|