packet-tracer-skill 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +424 -42
- package/README.md +535 -250
- package/SKILL.md +337 -262
- package/bin/packet-tracer-skill.js +29 -2
- package/docs/automation-controller-proof.md +35 -0
- package/docs/curated-donor-registry.md +11 -0
- package/docs/generate-ready-pilot-design.md +30 -0
- package/docs/github-launch-ops-0.2.3.md +37 -0
- package/docs/github-metadata.md +6 -4
- package/docs/hero-demo-plan.md +1 -1
- package/docs/home-iot-donor-proof.md +4 -4
- package/docs/industrial-programming-proof.md +48 -0
- package/docs/ipv4-routing-management-proof.md +37 -0
- package/docs/l2-resiliency-bgp-proof.md +60 -0
- package/docs/l2-security-qos-proof.md +59 -0
- package/docs/packet-tracer-feature-gap-atlas.md +174 -17
- package/docs/post-launch-follow-up.md +9 -5
- package/docs/proof-readiness-dashboard.md +69 -0
- package/docs/publish-preview-roadmap.md +6 -5
- package/docs/release-checklist.md +27 -13
- package/docs/release-notes-0.2.2.md +1 -1
- package/docs/release-notes-0.2.3.md +59 -0
- package/docs/release-notes-0.2.4.md +20 -0
- package/docs/runtime-truth.md +33 -8
- package/docs/security-edge-deepening-proof.md +65 -0
- package/docs/voice-collaboration-proof.md +38 -0
- package/docs/wan-security-donor-proof.md +20 -3
- package/examples/README.md +98 -69
- package/examples/complex_campus_master_edit_v4.inventory.json +12 -2
- package/examples/gallery.md +94 -6
- package/examples/home_iot_cli_edit_v1.inventory.json +11 -2
- package/examples/index.json +932 -4
- package/examples/local-sample-evidence.json +24 -0
- package/examples/proof-cards.json +117 -0
- package/examples/service_heavy_cli_edit_v1.inventory.json +11 -2
- package/package.json +60 -44
- package/pytest.ini +9 -0
- package/references/packettracer-feature-atlas.json +67 -17
- package/references/packettracer-sample-catalog.json +45287 -4525
- package/references/packettracer-sample-catalog.md +599 -259
- package/references/proof-readiness-candidates.json +352 -0
- package/scripts/build_examples_index.py +228 -35
- package/scripts/build_sample_catalog.py +24 -44
- package/scripts/corpus_runner.py +430 -0
- package/scripts/coverage_matrix.py +1842 -1319
- package/scripts/donor_cache.py +354 -0
- package/scripts/donor_diagnostics.py +3 -1
- package/scripts/feature_atlas.py +65 -1
- package/scripts/generate_pkt.py +8762 -4070
- package/scripts/intent_parser.py +2242 -1138
- package/scripts/local_donors.py +340 -0
- package/scripts/packet_tracer_env.py +846 -391
- package/scripts/pkt_annotate.py +218 -0
- package/scripts/pkt_codec.py +420 -181
- package/scripts/pkt_editor.py +2405 -1226
- package/scripts/pkt_transformer.py +1072 -727
- package/scripts/pkt_verify.py +461 -0
- package/scripts/remote_search.py +197 -21
- package/scripts/runtime_doctor.py +80 -29
- package/scripts/sample_catalog.py +1372 -1195
- package/scripts/twofish_diagnostics.py +48 -31
- package/scripts/usage_ledger.py +218 -0
- package/scripts/vendor/README.md +44 -37
- package/scripts/vendor/twofish_pure.py +321 -0
- package/scripts/workspace_repair.py +548 -508
- package/templates/pt900/donors/README.md +15 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# packet-tracer-skill
|
|
1
|
+
# packet-tracer-skill
|
|
2
2
|
|
|
3
3
|
[](https://github.com/20hajiyev/packet-tracer-skill/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
@@ -8,29 +8,94 @@ Cisco Packet Tracer 9.x `.pkt` generator and editor for skill-based coding hosts
|
|
|
8
8
|
|
|
9
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
10
|
|
|
11
|
-
|
|
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
|
+
## What `0.3.0` does
|
|
14
|
+
|
|
15
|
+
In this release a prompt produces a lab Packet Tracer opens.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx packet-tracer-skill --doctor # is this machine ready?
|
|
19
|
+
python scripts/generate_pkt.py --prompt "1 router 1 switch 4 komputer, DHCP ile avtomatik IP payla" --output lab.pkt
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The connectivity numbers below come from running `ping` on the devices, not from
|
|
23
|
+
inspecting the file.
|
|
24
|
+
|
|
25
|
+
| measurement | result |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| corpus scenarios generated | 32 of 33 |
|
|
28
|
+
| of those, opened by Packet Tracer | 32 of 32 |
|
|
29
|
+
| tests | 657 passed, 1 skipped |
|
|
30
|
+
| generated DHCP lab | four PCs took leases from the router pool and pinged their gateway and each other 4/4 |
|
|
31
|
+
| generated leased line | traffic crossed `Serial0/1/1 <-> Serial0/1/0` 4/4 |
|
|
32
|
+
|
|
33
|
+
Three defects had made every generated WAN lab unopenable, each hiding the next.
|
|
34
|
+
A donor the selector had *rejected* still rewrote the request, so a planned
|
|
35
|
+
serial link became copper before any other donor could serve it. Interface names
|
|
36
|
+
were invented from an assumed switch model instead of read from the device. And
|
|
37
|
+
serial cables carried no clocking end. Two of the three stayed invisible until
|
|
38
|
+
the open check itself was fixed, since it had been returning false verdicts often
|
|
39
|
+
enough to send investigations after defects that were not there.
|
|
40
|
+
|
|
41
|
+
Two different numbers in this README both describe generation. The one above is
|
|
42
|
+
donor-prune generation: a real lab is pruned and rewired to match the request.
|
|
43
|
+
The atlas `generate_ready` count further down is a stricter per-feature
|
|
44
|
+
acceptance gate, still `0` by design.
|
|
45
|
+
|
|
46
|
+
The previous line, the `0.2.3` capability release, was focused on:
|
|
12
47
|
|
|
13
48
|
- donor-backed and scenario-aware public messaging
|
|
14
49
|
- conservative Windows-first runtime truth
|
|
15
50
|
- known working scenario set examples with acceptance-backed artifacts
|
|
16
|
-
-
|
|
51
|
+
- 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
|
|
52
|
+
|
|
53
|
+
## What It Does
|
|
54
|
+
|
|
55
|
+
`packet-tracer-skill` turns network-lab requests into explicit Packet Tracer workflows. The core loop is:
|
|
56
|
+
|
|
57
|
+
1. parse the prompt into a scenario family and requested capabilities
|
|
58
|
+
2. compare those capabilities against the current support matrix
|
|
59
|
+
3. look for a compatible donor lab when strict `.pkt` work is required
|
|
60
|
+
4. refuse unsafe or unsupported changes instead of guessing
|
|
61
|
+
5. return a decision payload that explains what passed, what failed, and what would make it pass
|
|
62
|
+
|
|
63
|
+
The current public surface is strongest for these tasks:
|
|
64
|
+
|
|
65
|
+
- 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
|
|
66
|
+
- 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
|
|
67
|
+
- capability parity reports that explain whether a prompt is inventory-known, edit-supported, donor-limited, acceptance-gated, or unsupported
|
|
68
|
+
- runtime diagnostics for Packet Tracer installation, donor path, Twofish bridge resolution, and blocked versus ready operations
|
|
69
|
+
- public proof artifacts through examples, inventory manifests, acceptance excerpts, and donor proof docs
|
|
70
|
+
|
|
71
|
+
## What It Does Not Claim
|
|
72
|
+
|
|
73
|
+
The project is intentionally conservative. It does not claim universal Packet Tracer automation.
|
|
74
|
+
|
|
75
|
+
- It does not claim every Packet Tracer feature is generate-ready.
|
|
76
|
+
- It does not synthesize arbitrary `.pkt` internals when donor or acceptance evidence is weak.
|
|
77
|
+
- It does not treat a successful skill install as proof that real `.pkt` decode/edit/generate is ready.
|
|
78
|
+
- It does not commit raw `.pkt` donor labs or local bridge binaries into the public package.
|
|
79
|
+
- It does not claim repo-local self-contained runtime readiness when validation depends on an external bridge override.
|
|
80
|
+
|
|
81
|
+
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.
|
|
82
|
+
|
|
83
|
+
## Why It Is Different
|
|
17
84
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
`packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
|
|
85
|
+
`packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
|
|
21
86
|
|
|
22
87
|
- generation stays `single-donor apply`
|
|
23
88
|
- unsupported and acceptance-gated mutations do not fall back to guessed output
|
|
24
|
-
- `--explain-plan`, `--compare-scenarios`, `--parity-report`, and `--doctor` are first-class product surfaces
|
|
25
|
-
- curated donor evidence, fixture corpus checks, and runtime doctor output are part of the contract
|
|
26
|
-
|
|
27
|
-
In practice, that means the tool is trying to solve a narrower but more defensible problem than a prompt-to-diagram generator. It is designed to answer three questions in order:
|
|
28
|
-
|
|
29
|
-
1. what the prompt is actually asking for
|
|
30
|
-
2. whether the requested capability set is really supported for this scenario family
|
|
31
|
-
3. whether a compatible donor and runtime path exist to carry the request safely
|
|
32
|
-
|
|
33
|
-
If the answer to any of those is weak, the tool is expected to stop and explain why. That refusal behavior is part of the intended product quality, not a temporary limitation.
|
|
89
|
+
- `--explain-plan`, `--compare-scenarios`, `--parity-report`, and `--doctor` are first-class product surfaces
|
|
90
|
+
- curated donor evidence, fixture corpus checks, and runtime doctor output are part of the contract
|
|
91
|
+
|
|
92
|
+
In practice, that means the tool is trying to solve a narrower but more defensible problem than a prompt-to-diagram generator. It is designed to answer three questions in order:
|
|
93
|
+
|
|
94
|
+
1. what the prompt is actually asking for
|
|
95
|
+
2. whether the requested capability set is really supported for this scenario family
|
|
96
|
+
3. whether a compatible donor and runtime path exist to carry the request safely
|
|
97
|
+
|
|
98
|
+
If the answer to any of those is weak, the tool is expected to stop and explain why. That refusal behavior is part of the intended product quality, not a temporary limitation.
|
|
34
99
|
|
|
35
100
|
Current product strengths:
|
|
36
101
|
|
|
@@ -40,10 +105,17 @@ Current product strengths:
|
|
|
40
105
|
- runtime doctor contract with bridge resolution
|
|
41
106
|
- known working examples with screenshots and acceptance excerpts
|
|
42
107
|
|
|
43
|
-
## Runtime Reality
|
|
108
|
+
## Runtime Reality
|
|
44
109
|
|
|
45
110
|
Use the same repository, then install it into the skill path your host expects.
|
|
46
111
|
|
|
112
|
+
There are two separate installation stories:
|
|
113
|
+
|
|
114
|
+
- installing the skill package into Codex, Cursor, Claude, Gemini, Kiro, AdaL, OpenCode, or a custom skill directory
|
|
115
|
+
- making the local machine capable of opening, decoding, editing, and regenerating real Packet Tracer `.pkt` files
|
|
116
|
+
|
|
117
|
+
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.
|
|
118
|
+
|
|
47
119
|
| Tool | Install | First Use |
|
|
48
120
|
| --- | --- | --- |
|
|
49
121
|
| Codex CLI | `npx packet-tracer-skill` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
|
|
@@ -56,14 +128,14 @@ Use the same repository, then install it into the skill path your host expects.
|
|
|
56
128
|
| OpenCode | `npx packet-tracer-skill --path .agents/skills` | `opencode run @pkt build a Packet Tracer lab with VLAN and DHCP` |
|
|
57
129
|
| Custom path | `npx packet-tracer-skill --path ./my-skills` | depends on the host |
|
|
58
130
|
|
|
59
|
-
The installer can be used on multiple hosts, but real `.pkt` runtime remains Windows-first and doctor-governed.
|
|
60
|
-
|
|
61
|
-
That distinction matters because this project has two different surfaces:
|
|
62
|
-
|
|
63
|
-
- installer or skill-copy success
|
|
64
|
-
- actual Packet Tracer decode/edit/generate readiness
|
|
65
|
-
|
|
66
|
-
The first one is relatively portable. The second one is not. README, npm text, release notes, and doctor output all need to preserve that difference or they become misleading.
|
|
131
|
+
The installer can be used on multiple hosts, but real `.pkt` runtime remains Windows-first and doctor-governed.
|
|
132
|
+
|
|
133
|
+
That distinction matters because this project has two different surfaces:
|
|
134
|
+
|
|
135
|
+
- installer or skill-copy success
|
|
136
|
+
- actual Packet Tracer decode/edit/generate readiness
|
|
137
|
+
|
|
138
|
+
The first one is relatively portable. The second one is not. README, npm text, release notes, and doctor output all need to preserve that difference or they become misleading.
|
|
67
139
|
|
|
68
140
|
| Platform | Installer / skill copy | Real `.pkt` runtime |
|
|
69
141
|
| --- | --- | --- |
|
|
@@ -71,15 +143,15 @@ The first one is relatively portable. The second one is not. README, npm text, r
|
|
|
71
143
|
| macOS | Partially supported | Runtime contract defined, not acceptance-verified |
|
|
72
144
|
| Linux | Partially supported | Runtime contract defined, not acceptance-verified |
|
|
73
145
|
|
|
74
|
-
Important runtime rule:
|
|
146
|
+
Important runtime rule:
|
|
147
|
+
|
|
148
|
+
- installer success is not the same thing as runtime readiness
|
|
149
|
+
- `--doctor` is the authority for whether real `.pkt` operations are ready
|
|
150
|
+
- repo-local bridge and external bridge are reported separately
|
|
151
|
+
- current strict validation is Windows-first and external-bridge-assisted
|
|
152
|
+
- `validate_open` can be ready while strict decode/edit/generate are still blocked
|
|
75
153
|
|
|
76
|
-
|
|
77
|
-
- `--doctor` is the authority for whether real `.pkt` operations are ready
|
|
78
|
-
- repo-local bridge and external bridge are reported separately
|
|
79
|
-
- current strict validation is Windows-first and external-bridge-assisted
|
|
80
|
-
- `validate_open` can be ready while strict decode/edit/generate are still blocked
|
|
81
|
-
|
|
82
|
-
The mixed case is especially important. If `validate_open` works, that only proves Packet Tracer can be launched. It does not prove the current checkout can decode or regenerate `.pkt` files safely. For strict work, donor availability and Twofish bridge resolution still decide the outcome.
|
|
154
|
+
The mixed case is especially important. If `validate_open` works, that only proves Packet Tracer can be launched. It does not prove the current checkout can decode or regenerate `.pkt` files safely. For strict work, donor availability and Twofish bridge resolution still decide the outcome.
|
|
83
155
|
|
|
84
156
|
## Quick Start
|
|
85
157
|
|
|
@@ -109,6 +181,15 @@ npx packet-tracer-skill --doctor
|
|
|
109
181
|
python .\scripts\runtime_doctor.py
|
|
110
182
|
```
|
|
111
183
|
|
|
184
|
+
First-run workflow for real use:
|
|
185
|
+
|
|
186
|
+
1. Run `npx packet-tracer-skill --doctor` or `python .\scripts\runtime_doctor.py`.
|
|
187
|
+
2. Read `runtime_grade`, `ready_operations`, `blocked_operations`, and `best_next_fix`.
|
|
188
|
+
3. If runtime is blocked, fix Packet Tracer root, donor path, or Twofish bridge before expecting real `.pkt` decode/edit/generate.
|
|
189
|
+
4. Run `python .\scripts\generate_pkt.py --parity-report "<your prompt>"` to see whether the scenario is report-only, edit-proven, donor-backed-ready, or generate-ready.
|
|
190
|
+
5. Run `python .\scripts\generate_pkt.py --explain-plan "<your prompt>"` when parity says the prompt is blocked; the `user_summary`, `next_best_action`, and `proof_card_refs` fields are the fastest path to the next correct action.
|
|
191
|
+
6. Check `examples/gallery.md` when you need a known working example, proof card, or local evidence summary before attempting a new donor-backed workflow.
|
|
192
|
+
|
|
112
193
|
Local development:
|
|
113
194
|
|
|
114
195
|
```powershell
|
|
@@ -117,36 +198,45 @@ cd .\packet-tracer-skill
|
|
|
117
198
|
powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
|
|
118
199
|
```
|
|
119
200
|
|
|
120
|
-
Launch references:
|
|
121
|
-
|
|
122
|
-
- [docs/release-notes-0.2.
|
|
123
|
-
- [docs/
|
|
124
|
-
- [docs/
|
|
125
|
-
- [docs/
|
|
126
|
-
- [docs/
|
|
127
|
-
- [docs/
|
|
128
|
-
- [docs/
|
|
129
|
-
- [docs/
|
|
130
|
-
- [docs/
|
|
131
|
-
- [docs/
|
|
201
|
+
Launch references:
|
|
202
|
+
|
|
203
|
+
- [docs/release-notes-0.2.3.md](docs/release-notes-0.2.3.md)
|
|
204
|
+
- [docs/release-notes-0.2.4.md](docs/release-notes-0.2.4.md)
|
|
205
|
+
- [docs/hero-demo-plan.md](docs/hero-demo-plan.md)
|
|
206
|
+
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
207
|
+
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
208
|
+
- [docs/github-launch-ops-0.2.3.md](docs/github-launch-ops-0.2.3.md)
|
|
209
|
+
- [docs/proof-readiness-dashboard.md](docs/proof-readiness-dashboard.md)
|
|
210
|
+
- [docs/campus-donor-proof.md](docs/campus-donor-proof.md)
|
|
211
|
+
- [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
|
|
212
|
+
- [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
|
|
213
|
+
- [docs/wireless-advanced-proof.md](docs/wireless-advanced-proof.md)
|
|
214
|
+
- [docs/industrial-programming-proof.md](docs/industrial-programming-proof.md)
|
|
215
|
+
- [docs/automation-controller-proof.md](docs/automation-controller-proof.md)
|
|
216
|
+
- [docs/voice-collaboration-proof.md](docs/voice-collaboration-proof.md)
|
|
217
|
+
- [docs/l2-resiliency-bgp-proof.md](docs/l2-resiliency-bgp-proof.md)
|
|
218
|
+
- [docs/ipv4-routing-management-proof.md](docs/ipv4-routing-management-proof.md)
|
|
219
|
+
- [docs/l2-security-qos-proof.md](docs/l2-security-qos-proof.md)
|
|
220
|
+
- [docs/security-edge-deepening-proof.md](docs/security-edge-deepening-proof.md)
|
|
221
|
+
- [docs/packet-tracer-feature-gap-atlas.md](docs/packet-tracer-feature-gap-atlas.md)
|
|
132
222
|
|
|
133
223
|
## Runtime Doctor Contract
|
|
134
224
|
|
|
135
|
-
`--doctor` is a product surface, not a debug afterthought. It reports:
|
|
136
|
-
|
|
137
|
-
- `capability_impact`
|
|
138
|
-
- `runtime_blockers`
|
|
139
|
-
- `blocked_operations`
|
|
140
|
-
- `ready_operations`
|
|
141
|
-
- `what_currently_works`
|
|
142
|
-
- `what_is_blocked`
|
|
143
|
-
- `why_it_is_blocked`
|
|
144
|
-
- `best_next_fix`
|
|
145
|
-
- `recommended_next_steps`
|
|
146
|
-
- `doctor_summary`
|
|
147
|
-
- `runtime_grade`
|
|
148
|
-
- `bridge_resolution`
|
|
149
|
-
- `bridge_path_source`
|
|
225
|
+
`--doctor` is a product surface, not a debug afterthought. It reports:
|
|
226
|
+
|
|
227
|
+
- `capability_impact`
|
|
228
|
+
- `runtime_blockers`
|
|
229
|
+
- `blocked_operations`
|
|
230
|
+
- `ready_operations`
|
|
231
|
+
- `what_currently_works`
|
|
232
|
+
- `what_is_blocked`
|
|
233
|
+
- `why_it_is_blocked`
|
|
234
|
+
- `best_next_fix`
|
|
235
|
+
- `recommended_next_steps`
|
|
236
|
+
- `doctor_summary`
|
|
237
|
+
- `runtime_grade`
|
|
238
|
+
- `bridge_resolution`
|
|
239
|
+
- `bridge_path_source`
|
|
150
240
|
- `bridge_recommendation`
|
|
151
241
|
- `runtime_contract_notes`
|
|
152
242
|
|
|
@@ -162,32 +252,32 @@ Runtime grade states:
|
|
|
162
252
|
- `partially_ready`
|
|
163
253
|
- `blocked`
|
|
164
254
|
|
|
165
|
-
Important distinction:
|
|
166
|
-
|
|
167
|
-
- tests can pass with an external bridge override
|
|
168
|
-
- that does not mean the repo is self-contained runtime-ready
|
|
169
|
-
- the difference between repo-local readiness and external bridge fallback is part of the public contract
|
|
170
|
-
- mixed states should still read like a decision guide, not a debug dump
|
|
171
|
-
|
|
172
|
-
Selector and runtime are intentionally kept separate:
|
|
173
|
-
|
|
174
|
-
- donor selection can still block a prompt even when runtime is healthy
|
|
175
|
-
- runtime can still block strict `.pkt` work even when a donor artifact exists
|
|
176
|
-
- campus donor proof currently shows the first case more clearly than the second
|
|
177
|
-
|
|
178
|
-
Runtime truth reference:
|
|
179
|
-
|
|
180
|
-
- [docs/runtime-truth.md](docs/runtime-truth.md)
|
|
181
|
-
- [docs/post-launch-follow-up.md](docs/post-launch-follow-up.md)
|
|
255
|
+
Important distinction:
|
|
256
|
+
|
|
257
|
+
- tests can pass with an external bridge override
|
|
258
|
+
- that does not mean the repo is self-contained runtime-ready
|
|
259
|
+
- the difference between repo-local readiness and external bridge fallback is part of the public contract
|
|
260
|
+
- mixed states should still read like a decision guide, not a debug dump
|
|
261
|
+
|
|
262
|
+
Selector and runtime are intentionally kept separate:
|
|
263
|
+
|
|
264
|
+
- donor selection can still block a prompt even when runtime is healthy
|
|
265
|
+
- runtime can still block strict `.pkt` work even when a donor artifact exists
|
|
266
|
+
- campus donor proof currently shows the first case more clearly than the second
|
|
267
|
+
|
|
268
|
+
Runtime truth reference:
|
|
269
|
+
|
|
270
|
+
- [docs/runtime-truth.md](docs/runtime-truth.md)
|
|
271
|
+
- [docs/post-launch-follow-up.md](docs/post-launch-follow-up.md)
|
|
182
272
|
|
|
183
273
|
## Runtime Configuration
|
|
184
274
|
|
|
185
275
|
Set the local Packet Tracer environment before real `.pkt` generation:
|
|
186
276
|
|
|
187
|
-
```powershell
|
|
188
|
-
$env:PACKET_TRACER_ROOT='C:\Program Files\Cisco Packet Tracer 9.0.0'
|
|
189
|
-
$env:PACKET_TRACER_COMPAT_DONOR='C:\path\to\your-working-9.0-donor.pkt'
|
|
190
|
-
```
|
|
277
|
+
```powershell
|
|
278
|
+
$env:PACKET_TRACER_ROOT='C:\Program Files\Cisco Packet Tracer 9.0.0'
|
|
279
|
+
$env:PACKET_TRACER_COMPAT_DONOR='C:\path\to\your-working-9.0-donor.pkt'
|
|
280
|
+
```
|
|
191
281
|
|
|
192
282
|
Important variables:
|
|
193
283
|
|
|
@@ -196,51 +286,53 @@ Important variables:
|
|
|
196
286
|
- `PACKET_TRACER_EXE`
|
|
197
287
|
- `PACKET_TRACER_COMPAT_DONOR`
|
|
198
288
|
- `PACKET_TRACER_TARGET_VERSION`
|
|
199
|
-
- `PKT_TWOFISH_LIBRARY`
|
|
200
|
-
- `PKT_TWOFISH_SEARCH_ROOTS`
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
```powershell
|
|
215
|
-
$env:PKT_TWOFISH_LIBRARY="
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
- `bridge_resolution=
|
|
238
|
-
|
|
239
|
-
- `
|
|
240
|
-
|
|
289
|
+
- `PKT_TWOFISH_LIBRARY`
|
|
290
|
+
- `PKT_TWOFISH_SEARCH_ROOTS`
|
|
291
|
+
|
|
292
|
+
**None of these are required.** The skill resolves all of them on its own; set
|
|
293
|
+
one only to override what it found.
|
|
294
|
+
|
|
295
|
+
### Twofish
|
|
296
|
+
|
|
297
|
+
Nothing to install. `scripts/vendor/twofish_pure.py` is a pure-Python Twofish
|
|
298
|
+
that ships in the checkout and passes the official test vectors, so decode,
|
|
299
|
+
edit and generate work with no binaries and no environment variables.
|
|
300
|
+
|
|
301
|
+
A compiled bridge is an optional accelerator, worth setting only for repeated
|
|
302
|
+
work on very large labs (~12x on the Twofish step):
|
|
303
|
+
|
|
304
|
+
```powershell
|
|
305
|
+
$env:PKT_TWOFISH_LIBRARY="C:\path\to\_twofish.cp314-win_amd64.pyd"
|
|
306
|
+
$env:PKT_TWOFISH_SEARCH_ROOTS="C:\path\to\bridge-folder" # or search a folder
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Target version
|
|
310
|
+
|
|
311
|
+
Do not pin `PACKET_TRACER_TARGET_VERSION`. Packet Tracer refuses any lab whose
|
|
312
|
+
`<VERSION>` build differs from its own, so the correct value is whatever build
|
|
313
|
+
is installed on *your* machine, and the skill detects it:
|
|
314
|
+
|
|
315
|
+
1. `PACKET_TRACER_TARGET_VERSION`, if you set it
|
|
316
|
+
2. the Packet Tracer binary's own version resource (Windows)
|
|
317
|
+
3. a lab the local install has saved
|
|
318
|
+
4. the install directory name, which gives a release but no build
|
|
319
|
+
|
|
320
|
+
Steps 2 and 3 are the ones that yield a full four-field build. Only a donor
|
|
321
|
+
carrying that exact build can serve as a generation base -- bundled Cisco
|
|
322
|
+
samples ship as `9.0.0.0000` and produce files Packet Tracer rejects.
|
|
323
|
+
|
|
324
|
+
Troubleshooting:
|
|
325
|
+
|
|
326
|
+
- `twofish_backend=pure_python` is the normal, fully supported state.
|
|
327
|
+
- `bridge_resolution=missing` means only that no compiled accelerator was
|
|
328
|
+
found. It does not block anything.
|
|
329
|
+
- `validate_open` readiness proves Packet Tracer can launch a file. Generation
|
|
330
|
+
additionally needs an eligible donor -- run `runtime_doctor.py` to see which.
|
|
241
331
|
|
|
242
332
|
## Core Product Surfaces
|
|
243
333
|
|
|
334
|
+
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.
|
|
335
|
+
|
|
244
336
|
Use `--explain-plan` when you need the full decision payload:
|
|
245
337
|
|
|
246
338
|
```powershell
|
|
@@ -253,79 +345,150 @@ Use `--compare-scenarios` when you need scenario comparison:
|
|
|
253
345
|
python .\scripts\generate_pkt.py --compare-scenarios "campus with VLAN DHCP ACL" --compare-scenarios "smart home with IoT registration" --matrix-out .\output\compare.json
|
|
254
346
|
```
|
|
255
347
|
|
|
256
|
-
Use `--parity-report` for prompt-scoped capability readiness:
|
|
348
|
+
Use `--parity-report` for prompt-scoped capability readiness:
|
|
349
|
+
|
|
350
|
+
```powershell
|
|
351
|
+
python .\scripts\generate_pkt.py --parity-report "service-heavy lab with DNS DHCP FTP email syslog AAA"
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
Use `--feature-gap-report` for the Packet Tracer 9.0 feature atlas:
|
|
355
|
+
|
|
356
|
+
```powershell
|
|
357
|
+
python .\scripts\generate_pkt.py --feature-gap-report
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
## GitHub Sample Ingestion Is Local/Cache-Only
|
|
361
|
+
|
|
362
|
+
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.
|
|
363
|
+
|
|
364
|
+
Remote ingestion rules:
|
|
365
|
+
|
|
366
|
+
- imported `.pkt` and `.pka` files stay under `output/remote-import-cache` by default
|
|
367
|
+
- `output/remote-import-cache` is local-only and is not included in the npm package
|
|
368
|
+
- unknown or missing license metadata is treated as `reference_only`
|
|
369
|
+
- permissive-license repositories, such as MIT, only become curated donor candidates after decode and inventory validation
|
|
370
|
+
- decode-fail samples can contribute sample-path evidence, but they never create edit, donor-backed, or generate-ready claims
|
|
371
|
+
- final `.pkt` apply still uses the same `single-donor` safety rule
|
|
372
|
+
|
|
373
|
+
Preview GitHub candidates without downloading archives:
|
|
374
|
+
|
|
375
|
+
```powershell
|
|
376
|
+
python .\scripts\generate_pkt.py --explain-plan "ipv6 ospf hsrp lab" --search-remote --remote-dry-run --max-remote-results 3
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Import into the local cache and write the audit report:
|
|
380
|
+
|
|
381
|
+
```powershell
|
|
382
|
+
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
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## Local Sample Audit Is Evidence-Only
|
|
386
|
+
|
|
387
|
+
If you have your own Packet Tracer lab folder, audit it locally instead of copying raw `.pkt` files into this repo:
|
|
257
388
|
|
|
258
389
|
```powershell
|
|
259
|
-
python .\scripts\generate_pkt.py --
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
The
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
287
|
-
-
|
|
288
|
-
-
|
|
289
|
-
-
|
|
390
|
+
python .\scripts\generate_pkt.py --local-sample-audit-root "C:\path\to\pkt_examples"
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
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.
|
|
394
|
+
|
|
395
|
+
Use an explicit output path when you want to compare audit snapshots:
|
|
396
|
+
|
|
397
|
+
```powershell
|
|
398
|
+
python .\scripts\generate_pkt.py --local-sample-audit-root "C:\path\to\pkt_examples" --local-sample-audit-out output\local-sample-audit.json
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
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.
|
|
402
|
+
|
|
403
|
+
The generated audit is local by design:
|
|
404
|
+
|
|
405
|
+
- `repo_url`, license, default branch, import status
|
|
406
|
+
- imported `.pkt` / `.pka` / README / LICENSE counts
|
|
407
|
+
- decode success and failure counts
|
|
408
|
+
- detected feature tags when decode succeeds
|
|
409
|
+
- license-based candidate promotion status and decode-gated validation status
|
|
410
|
+
|
|
411
|
+
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.
|
|
412
|
+
|
|
413
|
+
Support levels used by the atlas:
|
|
414
|
+
|
|
415
|
+
- `not_mapped`: the feature is known as a Packet Tracer area, but this repo does not yet model it.
|
|
416
|
+
- `inventory_known`: the feature can be discovered or inferred from sample/catalog evidence.
|
|
417
|
+
- `report_supported`: prompts and reports can talk about the feature without claiming edits.
|
|
418
|
+
- `edit_proven`: explicit command shapes have editor roundtrip evidence.
|
|
419
|
+
- `donor_backed_ready`: a selected donor or proof-linked explicit edit path can safely carry the capability for a prompt-scoped workflow.
|
|
420
|
+
- `generate_ready`: strict generate support is acceptance-backed for that scenario.
|
|
421
|
+
|
|
422
|
+
Current feature-support truth:
|
|
423
|
+
|
|
424
|
+
| Area | Current status | Safe action |
|
|
425
|
+
| --- | --- | --- |
|
|
426
|
+
| 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 |
|
|
427
|
+
| 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 |
|
|
428
|
+
| 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 |
|
|
429
|
+
| 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 |
|
|
430
|
+
| 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 |
|
|
431
|
+
| 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 |
|
|
432
|
+
| 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 |
|
|
433
|
+
| 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 |
|
|
434
|
+
| 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 |
|
|
435
|
+
| 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 |
|
|
436
|
+
| Physical/media gaps | Report-supported atlas entries | Do not claim edit/generate support until a proof wave promotes them |
|
|
437
|
+
|
|
438
|
+
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.
|
|
439
|
+
|
|
440
|
+
For `--parity-report`, prefer the critical parity counters when reading a scenario-level answer:
|
|
441
|
+
`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.
|
|
442
|
+
|
|
443
|
+
Stable CLI surfaces:
|
|
444
|
+
|
|
445
|
+
- `--explain-plan`
|
|
446
|
+
- `--compare-scenarios`
|
|
447
|
+
- `--matrix-out`
|
|
448
|
+
- `--coverage-report`
|
|
449
|
+
- `--feature-gap-report`
|
|
450
|
+
- `--inventory-capabilities`
|
|
290
451
|
- `--doctor`
|
|
291
452
|
- `--parity-report`
|
|
292
453
|
- `--acceptance-json-out`
|
|
293
454
|
|
|
294
455
|
## Curated Donor and Fixture Truth Sources
|
|
295
456
|
|
|
296
|
-
This repository keeps explicit truth sources for donor evidence and scenario regression:
|
|
297
|
-
|
|
298
|
-
- `references/curated-donor-registry.json`
|
|
299
|
-
- `references/scenario-fixture-corpus.json`
|
|
300
|
-
- `references/packettracer-feature-atlas.json`
|
|
301
|
-
|
|
302
|
-
Curated donor registry reference:
|
|
303
|
-
|
|
304
|
-
- [docs/curated-donor-registry.md](docs/curated-donor-registry.md)
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
-
|
|
313
|
-
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
-
|
|
322
|
-
|
|
323
|
-
-
|
|
324
|
-
-
|
|
325
|
-
-
|
|
326
|
-
-
|
|
327
|
-
|
|
328
|
-
|
|
457
|
+
This repository keeps explicit truth sources for donor evidence and scenario regression:
|
|
458
|
+
|
|
459
|
+
- `references/curated-donor-registry.json`
|
|
460
|
+
- `references/scenario-fixture-corpus.json`
|
|
461
|
+
- `references/packettracer-feature-atlas.json`
|
|
462
|
+
|
|
463
|
+
Curated donor registry reference:
|
|
464
|
+
|
|
465
|
+
- [docs/curated-donor-registry.md](docs/curated-donor-registry.md)
|
|
466
|
+
|
|
467
|
+
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.
|
|
468
|
+
|
|
469
|
+
Current selector truth:
|
|
470
|
+
|
|
471
|
+
- a registry-backed donor can be inventory-proof without being prompt-selected
|
|
472
|
+
- selector output should explain the closest rejected donor class when generate is blocked
|
|
473
|
+
- `best_rejected_donor_class` and `primary_rejection_code` are intended to keep donor-limited refusals specific
|
|
474
|
+
- Home IoT readiness is only raised when the selected donor and prompt targets are both deterministic
|
|
475
|
+
- WAN/security readiness is only raised for explicit WAN/security intent when the selected donor carries matching WAN, security, tunnel, or multilayer runtime evidence
|
|
476
|
+
- Feature atlas entries are report-first; a feature can be visible in the atlas while still blocked for edit/generate.
|
|
477
|
+
|
|
478
|
+
## Known Working Scenario Set
|
|
479
|
+
|
|
480
|
+
Public examples stay text-first and review-friendly. Raw `.pkt` binaries are not committed.
|
|
481
|
+
|
|
482
|
+
These examples are not decorative screenshots. They are the public proof set for the current product contract. Each one is intended to show a scenario family that was actually exercised through donor-backed logic and then reduced into reviewable artifacts:
|
|
483
|
+
|
|
484
|
+
- screenshot
|
|
485
|
+
- inventory manifest
|
|
486
|
+
- acceptance excerpt
|
|
487
|
+
- parity excerpt
|
|
488
|
+
- decision excerpt
|
|
489
|
+
- runtime excerpt
|
|
490
|
+
|
|
491
|
+
This is why the examples surface matters so much in release work. It is the shortest path from a marketing claim to a falsifiable engineering artifact.
|
|
329
492
|
|
|
330
493
|
Canonical public examples:
|
|
331
494
|
|
|
@@ -345,38 +508,61 @@ Primary screenshot:
|
|
|
345
508
|
|
|
346
509
|

|
|
347
510
|
|
|
348
|
-
Hero visual for the `0.2.2`
|
|
511
|
+
Hero visual for the `0.2.3` capability release and `0.2.4` candidate surface:
|
|
349
512
|
|
|
350
513
|
- `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
351
514
|
|
|
352
|
-
The gallery is treated as a known working scenario set, not just a screenshot list, and the same canonical set feeds release notes and GitHub metadata.
|
|
353
|
-
|
|
354
|
-
Canonical public proof:
|
|
355
|
-
|
|
356
|
-
- [docs/campus-donor-proof.md](docs/campus-donor-proof.md)
|
|
357
|
-
- [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
|
|
358
|
-
- [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
-
|
|
372
|
-
|
|
373
|
-
- the
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
515
|
+
The gallery is treated as a known working scenario set, not just a screenshot list, and the same canonical set feeds release notes and GitHub metadata.
|
|
516
|
+
|
|
517
|
+
Canonical public proof:
|
|
518
|
+
|
|
519
|
+
- [docs/campus-donor-proof.md](docs/campus-donor-proof.md)
|
|
520
|
+
- [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
|
|
521
|
+
- [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
|
|
522
|
+
- [docs/l2-resiliency-bgp-proof.md](docs/l2-resiliency-bgp-proof.md)
|
|
523
|
+
- [docs/ipv4-routing-management-proof.md](docs/ipv4-routing-management-proof.md)
|
|
524
|
+
- [docs/l2-security-qos-proof.md](docs/l2-security-qos-proof.md)
|
|
525
|
+
- [docs/security-edge-deepening-proof.md](docs/security-edge-deepening-proof.md)
|
|
526
|
+
- [docs/proof-readiness-dashboard.md](docs/proof-readiness-dashboard.md)
|
|
527
|
+
|
|
528
|
+
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.
|
|
529
|
+
|
|
530
|
+
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.
|
|
531
|
+
|
|
532
|
+
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.
|
|
533
|
+
|
|
534
|
+
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.
|
|
535
|
+
|
|
536
|
+
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.
|
|
537
|
+
|
|
538
|
+
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.
|
|
539
|
+
|
|
540
|
+
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.
|
|
541
|
+
|
|
542
|
+
The proof-readiness dashboard is the next promotion queue. It combines proof cards, feature atlas state, and local sample evidence so the next donor-backed readiness work is chosen from evidence instead of random feature requests.
|
|
543
|
+
|
|
544
|
+
Generate-ready pilot design is intentionally separate from implementation:
|
|
545
|
+
|
|
546
|
+
- [docs/generate-ready-pilot-design.md](docs/generate-ready-pilot-design.md)
|
|
547
|
+
|
|
548
|
+
That document exists to define the first possible acceptance-backed `generate_ready` pilot without opening it in the current batch.
|
|
549
|
+
|
|
550
|
+
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.
|
|
551
|
+
|
|
552
|
+
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.
|
|
553
|
+
|
|
554
|
+
What the proof now tries to surface explicitly:
|
|
555
|
+
|
|
556
|
+
- a real donor exists
|
|
557
|
+
- inventory succeeds
|
|
558
|
+
- the larger generalized prompt is still refused
|
|
559
|
+
- the blocking layer is donor selection, not runtime
|
|
560
|
+
- the closest rejected donor class and rejection code should be visible in the decision payload
|
|
561
|
+
|
|
562
|
+
Classifier truth matters here too:
|
|
563
|
+
|
|
564
|
+
- shorthand campus prompts should still resolve to the `campus` family
|
|
565
|
+
- donor-limited campus refusal should be read as a campus selector result, not a service-heavy misclassification
|
|
380
566
|
|
|
381
567
|
## Security and Privacy
|
|
382
568
|
|
|
@@ -401,18 +587,34 @@ See also:
|
|
|
401
587
|
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
402
588
|
- [docs/github-discussions-setup.md](docs/github-discussions-setup.md)
|
|
403
589
|
|
|
404
|
-
## Release and Launch State
|
|
405
|
-
|
|
406
|
-
The
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
590
|
+
## Release and Launch State
|
|
591
|
+
|
|
592
|
+
The current line is `packet-tracer-skill@0.3.0`, and it is the first release
|
|
593
|
+
where generation is the headline rather than a deferred promise. `0.2.3`, the
|
|
594
|
+
previous published line, was a capability proof and readiness release that
|
|
595
|
+
deliberately refused broad generation.
|
|
596
|
+
|
|
597
|
+
What changed is measurable and was measured against live Packet Tracer: the
|
|
598
|
+
corpus generates 32 of 33 scenarios and Packet Tracer opens 32 of 32, 657 tests
|
|
599
|
+
pass, and connectivity is confirmed with real pings rather than file inspection.
|
|
600
|
+
Three defects that had made generated WAN labs unopenable were found and fixed —
|
|
601
|
+
a rejected donor rewriting the request, interface names invented from an assumed
|
|
602
|
+
switch model, and serial cables with no clocking end declared — along with the
|
|
603
|
+
open check itself, which had been giving false verdicts often enough to send
|
|
604
|
+
investigations after defects that were not there.
|
|
605
|
+
|
|
606
|
+
The candidate line after this one is `0.2.4`'s remaining product-hardening work:
|
|
607
|
+
Examples Truth 2.0, proof-card discoverability, local sample evidence
|
|
608
|
+
presentation, and proof-readiness promotion planning.
|
|
609
|
+
|
|
610
|
+
So the current state is no longer "preparing an experiment." The `0.2.3` package line is public, and the `0.2.4` candidate is about making the public proof surface operationally complete:
|
|
611
|
+
|
|
612
|
+
- examples should clearly distinguish `showcase_example` and `proof_card`
|
|
613
|
+
- proof-readiness candidates should show why a feature is not yet donor-backed-ready
|
|
614
|
+
- local sample evidence should be summarized without publishing raw `.pkt/.pka`
|
|
615
|
+
- GitHub metadata should match the published `0.2.3` state and next `0.2.4` candidate wording
|
|
616
|
+
|
|
617
|
+
That is the difference between "published" and "productized." The release can be installed from npm, but examples truth, proof cards, promotion queues, GitHub metadata, and follow-up proof artifacts are what make it operationally coherent.
|
|
416
618
|
|
|
417
619
|
Recommended local validation before release:
|
|
418
620
|
|
|
@@ -424,33 +626,116 @@ python .\scripts\generate_pkt.py --parity-report "campus with VLAN DHCP ACL"
|
|
|
424
626
|
python .\scripts\runtime_doctor.py
|
|
425
627
|
```
|
|
426
628
|
|
|
427
|
-
Launch ops references:
|
|
428
|
-
|
|
429
|
-
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
430
|
-
- [docs/publish-preview-roadmap.md](docs/publish-preview-roadmap.md)
|
|
431
|
-
- [docs/discovery-keywords.md](docs/discovery-keywords.md)
|
|
432
|
-
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
433
|
-
- [docs/github-launch-ops-0.2.2.md](docs/github-launch-ops-0.2.2.md)
|
|
434
|
-
- [docs/post-launch-follow-up.md](docs/post-launch-follow-up.md)
|
|
629
|
+
Launch ops references:
|
|
435
630
|
|
|
436
|
-
|
|
631
|
+
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
632
|
+
- [docs/publish-preview-roadmap.md](docs/publish-preview-roadmap.md)
|
|
633
|
+
- [docs/discovery-keywords.md](docs/discovery-keywords.md)
|
|
634
|
+
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
635
|
+
- [docs/github-launch-ops-0.2.3.md](docs/github-launch-ops-0.2.3.md)
|
|
636
|
+
- [docs/post-launch-follow-up.md](docs/post-launch-follow-up.md)
|
|
637
|
+
- [docs/proof-readiness-dashboard.md](docs/proof-readiness-dashboard.md)
|
|
437
638
|
|
|
438
|
-
|
|
639
|
+
## Azərbaycanca
|
|
439
640
|
|
|
440
|
-
|
|
641
|
+
Bu repo Cisco Packet Tracer 9.x `.pkt` faylları üçün təbii dildən laboratoriya
|
|
642
|
+
qurur, mövcud faylı redaktə edir və hər iddiasını ölçü ilə əsaslandırır. Verdiyi
|
|
643
|
+
fayl Packet Tracer-də açılır və cihazları bir-birini ping edir; alınmayanda
|
|
644
|
+
səbəbini açıq deyir.
|
|
441
645
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
-
|
|
445
|
-
|
|
446
|
-
|
|
646
|
+
### `0.3.0` nə dəyişdi
|
|
647
|
+
|
|
648
|
+
Bu, promptun Packet Tracer-in açdığı fayla çevrildiyi ilk buraxılışdır.
|
|
649
|
+
|
|
650
|
+
| Ölçü | Nəticə |
|
|
651
|
+
| --- | --- |
|
|
652
|
+
| korpusda qurulan ssenari | 33-dən 32 |
|
|
653
|
+
| onlardan Packet Tracer-in açdığı | 32-dən 32 |
|
|
654
|
+
| testlər | 657 keçdi, 1 ötürüldü |
|
|
655
|
+
| DHCP laboratoriyası | 4 kompüter routerin hovuzundan ünvan aldı, şlüzə və bir-birinə 4/4 ping |
|
|
656
|
+
| icarə xətti (leased line) | trafik `Serial0/1/1 <-> Serial0/1/0` üzərindən 4/4 keçdi |
|
|
657
|
+
|
|
658
|
+
Ping rəqəmləri cihazların özündə `ping` işlədilməklə alınıb. Bu layihədə bütün
|
|
659
|
+
statik yoxlamaları keçən, amma heç nəyin ping etmədiyi laboratoriyalar olub.
|
|
447
660
|
|
|
448
|
-
|
|
661
|
+
### Nə düzəldildi
|
|
662
|
+
|
|
663
|
+
Generasiya edilən hər WAN laboratoriyası açılmırdı və bunun arxasında bir-birini
|
|
664
|
+
gizlədən üç defekt vardı:
|
|
665
|
+
|
|
666
|
+
1. **Seçilməyən donor tələbi yenidən yazırdı.** Sınanan ilk donor WAN-ı daşıya
|
|
667
|
+
bilmirdisə, planlanmış `R1 Serial0/0/0 <-> R2 Serial0/0/0` xəttini misə
|
|
668
|
+
çevirirdi, və bundan sonra heç bir mərhələ serial istənildiyini bilmirdi.
|
|
669
|
+
Topologiya tələbdən yox, donorun formasından çıxırdı.
|
|
670
|
+
2. **Port adları cihazdan alınmırdı, güman edilən modeldən uydurulurdu.**
|
|
671
|
+
Portlarını `FastEthernet0/1, 1/1 … 9/1` kimi nömrələyən switch-dən
|
|
672
|
+
`FastEthernet0/2` istənilirdi. Eyni fayl uplink `FastEthernet2/1`-ə keçəndə
|
|
673
|
+
açılır.
|
|
674
|
+
3. **Serial kabelin clock ucu (DCE) elan olunmurdu.** Donorların hər serial
|
|
675
|
+
xəttində var idi, bizimkilərin heç birində yox.
|
|
676
|
+
|
|
677
|
+
Bunlardan ikisi yalnız ölçü aləti düzəldiləndən sonra görünə bildi. Açılış
|
|
678
|
+
yoxlaması eyni fayla beş sınaqdan ikisində yalan cavab verirdi.
|
|
679
|
+
|
|
680
|
+
### Necə işləyir
|
|
681
|
+
|
|
682
|
+
Skill promptu ssenari ailəsinə və tələb olunan imkanlara ayırır, uyğun donor
|
|
683
|
+
laboratoriya seçir, onu tələbə uyğun budayıb yenidən kabelləyir, sonra nəticəni
|
|
684
|
+
yoxlayır. Donor, runtime və ya sübut zəifdirsə, yarımçıq fayl vermək əvəzinə
|
|
685
|
+
səbəbli imtina qaytarır. Faylı korlamaqdansa nəyin çatışmadığını demək daha
|
|
686
|
+
təhlükəsizdir.
|
|
687
|
+
|
|
688
|
+
### Başlamaq üçün
|
|
689
|
+
|
|
690
|
+
```bash
|
|
691
|
+
npx packet-tracer-skill --doctor
|
|
692
|
+
python scripts/generate_pkt.py --prompt "1 router 1 switch 4 komputer, DHCP ile avtomatik IP payla" --output lab.pkt
|
|
693
|
+
```
|
|
449
694
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
-
|
|
453
|
-
|
|
695
|
+
Faydalı bayraqlar:
|
|
696
|
+
|
|
697
|
+
- `--doctor` — Packet Tracer quraşdırması, donor yolu və hansı əməliyyatların
|
|
698
|
+
hazır olduğunu göstərir
|
|
699
|
+
- `--explain-plan` — promptun hansı ssenariyə çevrildiyini və hansı donorun niyə
|
|
700
|
+
seçildiyini açır
|
|
701
|
+
- `--parity-report` — tələb olunan imkanların hansı səviyyədə dəstəkləndiyini
|
|
702
|
+
göstərir
|
|
703
|
+
- `--feature-gap-report` — Packet Tracer 9.0-da olub skilldə hələ tam
|
|
704
|
+
məhsullaşmamış sahələri sadalayır
|
|
705
|
+
- `--local-sample-audit-root` — öz `.pkt/.pka` qovluğunuzu audit edir; xam
|
|
706
|
+
fayllar nə repoya, nə də npm paketinə düşmür
|
|
707
|
+
|
|
708
|
+
### Hazırda güclü olan sahələr
|
|
709
|
+
|
|
710
|
+
- kampus və servis yüklü laboratoriyaların planlanması, redaktəsi və hesabatı
|
|
711
|
+
- VLAN, DHCP, ACL, NAT/PAT, statik və dinamik marşrutlaşdırma (OSPF, EIGRP,
|
|
712
|
+
RIP), SSH/NTP/syslog kimi əmr formaları üçün sübutlanmış redaktə yolları
|
|
713
|
+
- router-router serial WAN — planlanır, qurulur, açılır və trafik keçir
|
|
714
|
+
- L2 təhlükəsizliyi və monitorinqi: DHCP snooping, DAI, dot1x, QoS, SNMP,
|
|
715
|
+
NetFlow, SPAN
|
|
716
|
+
- STP/RSTP, EtherChannel, VTP, DTP və BGP üçün IOS mətn redaktəsi
|
|
717
|
+
- səs və avtomatlaşdırma: `telephony-service`, `ephone`, `dial-peer`, mövcud
|
|
718
|
+
Python/JavaScript/TCP/UDP skript fayllarının dəyişdirilməsi
|
|
719
|
+
|
|
720
|
+
### Hələ konservativ qalan sahələr
|
|
721
|
+
|
|
722
|
+
- atlasdakı `generate_ready` sayğacı qəsdən `0`-dır: o, daha sərt, hər xüsusiyyət
|
|
723
|
+
üçün ayrıca qəbul qapısıdır və yuxarıdakı generasiya ilə eyni şey deyil
|
|
724
|
+
- switch-lər arasında fiber uplink: 140 laboratoriyanın heç bir switch-ində
|
|
725
|
+
fiber port yoxdur, ona görə donordan əldə edilə bilmir
|
|
726
|
+
- WLC, Meraki, mobil şəbəkə, Bluetooth və qonaq Wi-Fi əsasən yalnız hesabat
|
|
727
|
+
səviyyəsindədir
|
|
728
|
+
- sənaye protokolları (MQTT, Profinet, PTP, L2NAT) hesabat səviyyəsində qalır
|
|
729
|
+
- cihaz əhatəsi genişlənir, amma hələ Packet Tracer palitrasının hamısını
|
|
730
|
+
əhatə etmir
|
|
731
|
+
|
|
732
|
+
### Növbəti işlər
|
|
733
|
+
|
|
734
|
+
- port adlarının kodda deyil, hər zaman cihazın öz kataloqundan alınması
|
|
735
|
+
- topologiyanın tələbdən çıxması: core/distribution/access strukturu, rola görə
|
|
736
|
+
fərqli switch modelləri, uplinklərdə fiber
|
|
737
|
+
- cihaz və kabel əhatəsinin genişləndirilməsi
|
|
738
|
+
- hər yeni imkanın yalnız canlı Packet Tracer-də ölçüldükdən sonra elan edilməsi
|
|
454
739
|
|
|
455
740
|
## License
|
|
456
741
|
|