packet-tracer-skill 0.2.1 → 0.2.2
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 +22 -2
- package/README.md +237 -88
- package/docs/campus-donor-proof.md +103 -0
- package/docs/curated-donor-registry.md +26 -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/launch-announcement-0.2.2.md +15 -0
- package/docs/packet-tracer-feature-gap-atlas.md +87 -0
- package/docs/post-launch-follow-up.md +39 -0
- package/docs/publish-preview-roadmap.md +20 -17
- package/docs/release-checklist.md +22 -12
- package/docs/release-notes-0.2.1.md +7 -6
- package/docs/release-notes-0.2.2.md +26 -0
- package/docs/runtime-truth.md +31 -0
- package/docs/wan-security-donor-proof.md +41 -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 +11 -1
- package/references/curated-donor-registry.json +5 -2
- package/references/packettracer-feature-atlas.json +133 -0
- package/references/scenario-fixture-corpus.json +1 -0
- package/scripts/build_examples_index.py +26 -15
- package/scripts/coverage_matrix.py +559 -23
- package/scripts/feature_atlas.py +229 -0
- package/scripts/generate_pkt.py +330 -31
- package/scripts/intent_parser.py +278 -7
- package/scripts/pkt_editor.py +174 -0
- package/scripts/runtime_doctor.py +83 -10
- package/scripts/sample_catalog.py +210 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,8 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project should be recorded in this file.
|
|
4
4
|
|
|
5
|
-
The format is intentionally simple and release-oriented.
|
|
6
|
-
|
|
5
|
+
The format is intentionally simple and release-oriented.
|
|
6
|
+
|
|
7
|
+
## [0.2.2]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- advanced wireless proof surface for WEP and WPA Enterprise/RADIUS edit-proven behavior
|
|
12
|
+
- wireless advanced feature atlas coverage for WLC, Meraki, cellular, Bluetooth, beamforming, guest Wi-Fi, WEP, and WPA Enterprise
|
|
13
|
+
- runtime README guidance for generic Twofish bridge paths and search-root fallback
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- package version advanced to `0.2.2` for the README/runtime cleanup and advanced wireless feature wave
|
|
18
|
+
- README runtime setup no longer presents a user-specific `.codex` path as the default bridge location
|
|
19
|
+
- advanced wireless prompts now classify into the `wireless_advanced` family without drifting into `service_heavy`
|
|
20
|
+
- WEP and WPA Enterprise/RADIUS are represented as edit-proven where explicit deterministic edit targets exist, while broader WLC/cellular/Bluetooth/Meraki scope remains report-only
|
|
21
|
+
|
|
22
|
+
### Notes
|
|
23
|
+
|
|
24
|
+
- `0.2.2` remains conservative: no broad synthetic advanced wireless generation is claimed
|
|
25
|
+
- runtime messaging remains Windows-first and explicit about external bridge-assisted validation
|
|
26
|
+
|
|
7
27
|
## [0.2.1]
|
|
8
28
|
|
|
9
29
|
### Added
|
package/README.md
CHANGED
|
@@ -8,21 +8,29 @@ 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
|
-
`0.2.
|
|
11
|
+
`0.2.2` public preview baseline is focused on:
|
|
12
12
|
|
|
13
13
|
- donor-backed and scenario-aware public messaging
|
|
14
14
|
- conservative Windows-first runtime truth
|
|
15
15
|
- known working scenario set examples with acceptance-backed artifacts
|
|
16
|
-
-
|
|
16
|
+
- README runtime cleanup, advanced wireless feature atlas coverage, and GitHub-launch-ops-ready metadata
|
|
17
17
|
|
|
18
|
-
## Why It Is Different
|
|
19
|
-
|
|
20
|
-
`packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
|
|
18
|
+
## Why It Is Different
|
|
19
|
+
|
|
20
|
+
`packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
|
|
21
21
|
|
|
22
22
|
- generation stays `single-donor apply`
|
|
23
23
|
- 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
|
|
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.
|
|
26
34
|
|
|
27
35
|
Current product strengths:
|
|
28
36
|
|
|
@@ -32,7 +40,7 @@ Current product strengths:
|
|
|
32
40
|
- runtime doctor contract with bridge resolution
|
|
33
41
|
- known working examples with screenshots and acceptance excerpts
|
|
34
42
|
|
|
35
|
-
## Runtime Reality
|
|
43
|
+
## Runtime Reality
|
|
36
44
|
|
|
37
45
|
Use the same repository, then install it into the skill path your host expects.
|
|
38
46
|
|
|
@@ -48,7 +56,14 @@ Use the same repository, then install it into the skill path your host expects.
|
|
|
48
56
|
| OpenCode | `npx packet-tracer-skill --path .agents/skills` | `opencode run @pkt build a Packet Tracer lab with VLAN and DHCP` |
|
|
49
57
|
| Custom path | `npx packet-tracer-skill --path ./my-skills` | depends on the host |
|
|
50
58
|
|
|
51
|
-
The installer can be used on multiple hosts, but real `.pkt` runtime remains Windows-first and doctor-governed.
|
|
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.
|
|
52
67
|
|
|
53
68
|
| Platform | Installer / skill copy | Real `.pkt` runtime |
|
|
54
69
|
| --- | --- | --- |
|
|
@@ -56,12 +71,15 @@ The installer can be used on multiple hosts, but real `.pkt` runtime remains Win
|
|
|
56
71
|
| macOS | Partially supported | Runtime contract defined, not acceptance-verified |
|
|
57
72
|
| Linux | Partially supported | Runtime contract defined, not acceptance-verified |
|
|
58
73
|
|
|
59
|
-
Important runtime rule:
|
|
74
|
+
Important runtime rule:
|
|
60
75
|
|
|
61
|
-
- installer success is not the same thing as runtime readiness
|
|
62
|
-
- `--doctor` is the authority for whether real `.pkt` operations are ready
|
|
63
|
-
- repo-local bridge and external bridge are reported separately
|
|
64
|
-
- current strict validation is Windows-first and external-bridge-assisted
|
|
76
|
+
- installer success is not the same thing as runtime readiness
|
|
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.
|
|
65
83
|
|
|
66
84
|
## Quick Start
|
|
67
85
|
|
|
@@ -99,26 +117,36 @@ cd .\packet-tracer-skill
|
|
|
99
117
|
powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
|
|
100
118
|
```
|
|
101
119
|
|
|
102
|
-
Launch
|
|
103
|
-
|
|
104
|
-
- [docs/release-notes-0.2.
|
|
105
|
-
- [docs/hero-demo-plan.md](docs/hero-demo-plan.md)
|
|
106
|
-
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
107
|
-
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
120
|
+
Launch references:
|
|
121
|
+
|
|
122
|
+
- [docs/release-notes-0.2.2.md](docs/release-notes-0.2.2.md)
|
|
123
|
+
- [docs/hero-demo-plan.md](docs/hero-demo-plan.md)
|
|
124
|
+
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
125
|
+
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
126
|
+
- [docs/github-launch-ops-0.2.2.md](docs/github-launch-ops-0.2.2.md)
|
|
127
|
+
- [docs/campus-donor-proof.md](docs/campus-donor-proof.md)
|
|
128
|
+
- [docs/home-iot-donor-proof.md](docs/home-iot-donor-proof.md)
|
|
129
|
+
- [docs/wan-security-donor-proof.md](docs/wan-security-donor-proof.md)
|
|
130
|
+
- [docs/wireless-advanced-proof.md](docs/wireless-advanced-proof.md)
|
|
131
|
+
- [docs/packet-tracer-feature-gap-atlas.md](docs/packet-tracer-feature-gap-atlas.md)
|
|
108
132
|
|
|
109
133
|
## Runtime Doctor Contract
|
|
110
134
|
|
|
111
|
-
`--doctor` is a product surface, not a debug afterthought. It reports:
|
|
112
|
-
|
|
113
|
-
- `capability_impact`
|
|
114
|
-
- `runtime_blockers`
|
|
115
|
-
- `blocked_operations`
|
|
116
|
-
- `ready_operations`
|
|
117
|
-
- `
|
|
118
|
-
- `
|
|
119
|
-
- `
|
|
120
|
-
- `
|
|
121
|
-
- `
|
|
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`
|
|
122
150
|
- `bridge_recommendation`
|
|
123
151
|
- `runtime_contract_notes`
|
|
124
152
|
|
|
@@ -134,25 +162,32 @@ Runtime grade states:
|
|
|
134
162
|
- `partially_ready`
|
|
135
163
|
- `blocked`
|
|
136
164
|
|
|
137
|
-
Important distinction:
|
|
138
|
-
|
|
139
|
-
- tests can pass with an external bridge override
|
|
140
|
-
- that does not mean the repo is self-contained runtime-ready
|
|
141
|
-
- the difference between repo-local readiness and external bridge fallback is part of the public contract
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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)
|
|
146
182
|
|
|
147
183
|
## Runtime Configuration
|
|
148
184
|
|
|
149
185
|
Set the local Packet Tracer environment before real `.pkt` generation:
|
|
150
186
|
|
|
151
|
-
```powershell
|
|
152
|
-
$env:PACKET_TRACER_ROOT='C:\Program Files\Cisco Packet Tracer 9.0.0'
|
|
153
|
-
$env:PACKET_TRACER_COMPAT_DONOR='C:\path\to\your-working-9.0-donor.pkt'
|
|
154
|
-
|
|
155
|
-
```
|
|
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
|
+
```
|
|
156
191
|
|
|
157
192
|
Important variables:
|
|
158
193
|
|
|
@@ -161,14 +196,48 @@ Important variables:
|
|
|
161
196
|
- `PACKET_TRACER_EXE`
|
|
162
197
|
- `PACKET_TRACER_COMPAT_DONOR`
|
|
163
198
|
- `PACKET_TRACER_TARGET_VERSION`
|
|
164
|
-
- `PKT_TWOFISH_LIBRARY`
|
|
165
|
-
- `PKT_TWOFISH_SEARCH_ROOTS`
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
199
|
+
- `PKT_TWOFISH_LIBRARY`
|
|
200
|
+
- `PKT_TWOFISH_SEARCH_ROOTS`
|
|
201
|
+
|
|
202
|
+
Twofish bridge setup is intentionally local-machine specific. Do not copy another
|
|
203
|
+
user's `.codex` path as if it were universal.
|
|
204
|
+
|
|
205
|
+
Generic explicit bridge path:
|
|
206
|
+
|
|
207
|
+
```powershell
|
|
208
|
+
$env:PKT_TWOFISH_LIBRARY="C:\path\to\_twofish.cp314-win_amd64.pyd"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Repo-local bridge path, if you have placed a compatible bridge inside this
|
|
212
|
+
checkout:
|
|
213
|
+
|
|
214
|
+
```powershell
|
|
215
|
+
$env:PKT_TWOFISH_LIBRARY="$PWD\scripts\vendor\_twofish.cp314-win_amd64.pyd"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Search-root fallback, if you want the runtime to look inside a local bridge
|
|
219
|
+
folder:
|
|
220
|
+
|
|
221
|
+
```powershell
|
|
222
|
+
$env:PKT_TWOFISH_SEARCH_ROOTS="C:\path\to\bridge-folder"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Developer-local paths such as `$env:USERPROFILE\.codex\skills\...` are valid only
|
|
226
|
+
for the person and host where that bridge exists. They are not the public setup
|
|
227
|
+
contract.
|
|
228
|
+
|
|
229
|
+
Required policy:
|
|
230
|
+
|
|
231
|
+
- keep `PACKET_TRACER_TARGET_VERSION` on `9.0.0.0810`
|
|
232
|
+
- do not downgrade the workflow to `5.3`
|
|
233
|
+
- if donor or bridge is missing, fix the runtime instead of weakening the compatibility profile
|
|
234
|
+
|
|
235
|
+
Troubleshooting guide:
|
|
236
|
+
|
|
237
|
+
- `bridge_resolution=repo_local` means the checkout contains the bridge path the doctor resolved.
|
|
238
|
+
- `bridge_resolution=external_env` means an environment variable points to a bridge outside the repo. This can be valid for testing, but it is not repo self-contained readiness.
|
|
239
|
+
- `bridge_resolution=missing` means strict decode/edit/generate is blocked until `PKT_TWOFISH_LIBRARY` or `PKT_TWOFISH_SEARCH_ROOTS` resolves a compatible bridge.
|
|
240
|
+
- `validate_open` readiness only proves Packet Tracer can launch a file. Strict `.pkt` generation still depends on donor and bridge readiness.
|
|
172
241
|
|
|
173
242
|
## Core Product Surfaces
|
|
174
243
|
|
|
@@ -184,37 +253,79 @@ Use `--compare-scenarios` when you need scenario comparison:
|
|
|
184
253
|
python .\scripts\generate_pkt.py --compare-scenarios "campus with VLAN DHCP ACL" --compare-scenarios "smart home with IoT registration" --matrix-out .\output\compare.json
|
|
185
254
|
```
|
|
186
255
|
|
|
187
|
-
Use `--parity-report` for prompt-scoped capability readiness:
|
|
256
|
+
Use `--parity-report` for prompt-scoped capability readiness:
|
|
188
257
|
|
|
189
258
|
```powershell
|
|
190
|
-
python .\scripts\generate_pkt.py --parity-report "service-heavy lab with DNS DHCP FTP email syslog AAA"
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
-
|
|
259
|
+
python .\scripts\generate_pkt.py --parity-report "service-heavy lab with DNS DHCP FTP email syslog AAA"
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Use `--feature-gap-report` for the Packet Tracer 9.0 feature atlas:
|
|
263
|
+
|
|
264
|
+
```powershell
|
|
265
|
+
python .\scripts\generate_pkt.py --feature-gap-report
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
The atlas now distinguishes report-only features from edit-proven features. IPv6/routing, a constrained L2 security/monitoring subset, and a narrow advanced-wireless edit subset can be edited with explicit commands, but none of these are claimed as broad generate-ready without donor-backed acceptance evidence.
|
|
269
|
+
|
|
270
|
+
Current feature-support truth:
|
|
271
|
+
|
|
272
|
+
| Area | Current status | Safe action |
|
|
273
|
+
| --- | --- | --- |
|
|
274
|
+
| Campus / service-heavy / Home IoT / WAN-security scenario families | Donor-aware planning and parity/report surfaces | Use `--explain-plan`, `--compare-scenarios`, and donor proof docs before strict generate claims |
|
|
275
|
+
| IPv6/routing | Edit-proven subset | Use explicit router/interface commands; strict generate still needs selected-donor acceptance |
|
|
276
|
+
| L2 security/monitoring | Edit-proven subset | Use explicit DHCP snooping, DAI, LLDP, REP, SNMP, NetFlow, SPAN/RSPAN, and port-security commands |
|
|
277
|
+
| Advanced wireless | WEP and WPA Enterprise/RADIUS are explicit-edit capable; WLC, Meraki, cellular, Bluetooth, beamforming, and guest Wi-Fi remain report-only | Keep controller/cellular/Bluetooth claims in atlas/report mode until donor-backed proof exists |
|
|
278
|
+
| Voice, automation/controller, industrial IoT, physical/media gaps | Report-supported atlas entries | Do not claim edit/generate support until a proof wave promotes them |
|
|
279
|
+
|
|
280
|
+
The important number is still `generate_ready=0` for the atlas gap families. That is deliberate: visibility comes first, then edit proof, then donor-backed readiness, and only then generate readiness.
|
|
281
|
+
|
|
282
|
+
Stable CLI surfaces:
|
|
283
|
+
|
|
284
|
+
- `--explain-plan`
|
|
285
|
+
- `--compare-scenarios`
|
|
286
|
+
- `--matrix-out`
|
|
287
|
+
- `--coverage-report`
|
|
288
|
+
- `--feature-gap-report`
|
|
289
|
+
- `--inventory-capabilities`
|
|
200
290
|
- `--doctor`
|
|
201
291
|
- `--parity-report`
|
|
202
292
|
- `--acceptance-json-out`
|
|
203
293
|
|
|
204
294
|
## Curated Donor and Fixture Truth Sources
|
|
205
295
|
|
|
206
|
-
This repository keeps explicit truth sources for donor evidence and scenario regression:
|
|
207
|
-
|
|
208
|
-
- `references/curated-donor-registry.json`
|
|
209
|
-
- `references/scenario-fixture-corpus.json`
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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
|
+
Current selector truth:
|
|
307
|
+
|
|
308
|
+
- a registry-backed donor can be inventory-proof without being prompt-selected
|
|
309
|
+
- selector output should explain the closest rejected donor class when generate is blocked
|
|
310
|
+
- `best_rejected_donor_class` and `primary_rejection_code` are intended to keep donor-limited refusals specific
|
|
311
|
+
- Home IoT readiness is only raised when the selected donor and prompt targets are both deterministic
|
|
312
|
+
- WAN/security readiness is only raised for explicit WAN/security intent when the selected donor carries matching WAN, security, tunnel, or multilayer runtime evidence
|
|
313
|
+
- Feature atlas entries are report-first; a feature can be visible in the atlas while still blocked for edit/generate.
|
|
314
|
+
|
|
315
|
+
## Known Working Scenario Set
|
|
316
|
+
|
|
317
|
+
Public examples stay text-first and review-friendly. Raw `.pkt` binaries are not committed.
|
|
318
|
+
|
|
319
|
+
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:
|
|
320
|
+
|
|
321
|
+
- screenshot
|
|
322
|
+
- inventory manifest
|
|
323
|
+
- acceptance excerpt
|
|
324
|
+
- parity excerpt
|
|
325
|
+
- decision excerpt
|
|
326
|
+
- runtime excerpt
|
|
327
|
+
|
|
328
|
+
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.
|
|
218
329
|
|
|
219
330
|
Canonical public examples:
|
|
220
331
|
|
|
@@ -234,11 +345,38 @@ Primary screenshot:
|
|
|
234
345
|
|
|
235
346
|

|
|
236
347
|
|
|
237
|
-
Hero visual for the `0.2.
|
|
348
|
+
Hero visual for the `0.2.2` public preview surface:
|
|
238
349
|
|
|
239
350
|
- `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
240
351
|
|
|
241
|
-
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.
|
|
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
|
+
The campus donor proof is intentionally more specific than the gallery cards. It shows that a real donor artifact inventories correctly, but it also shows that a generalized campus prompt can still be donor-limited. That is exactly the kind of nuance the public docs should preserve.
|
|
361
|
+
|
|
362
|
+
The Home IoT donor proof is intentionally narrower than a generic smart-home claim. It shows that donor-backed registration, rule control, and wireless association are integrated only inside a constrained path with explicit targets and a selected donor.
|
|
363
|
+
|
|
364
|
+
The WAN/security donor proof is also conservative. It shows family-correct report/selection behavior and donor-backed readiness semantics for VPN, IPSec, GRE, PPP, security-edge, and multilayer evidence, but it does not claim broad synthetic WAN/security configuration generation.
|
|
365
|
+
|
|
366
|
+
The advanced wireless proof is narrower again. It promotes only explicit WEP and WPA Enterprise/RADIUS edit semantics while keeping WLC, Meraki, cellular, Bluetooth, beamforming, and guest Wi-Fi in report-only atlas mode.
|
|
367
|
+
|
|
368
|
+
What the proof now tries to surface explicitly:
|
|
369
|
+
|
|
370
|
+
- a real donor exists
|
|
371
|
+
- inventory succeeds
|
|
372
|
+
- the larger generalized prompt is still refused
|
|
373
|
+
- the blocking layer is donor selection, not runtime
|
|
374
|
+
- the closest rejected donor class and rejection code should be visible in the decision payload
|
|
375
|
+
|
|
376
|
+
Classifier truth matters here too:
|
|
377
|
+
|
|
378
|
+
- shorthand campus prompts should still resolve to the `campus` family
|
|
379
|
+
- donor-limited campus refusal should be read as a campus selector result, not a service-heavy misclassification
|
|
242
380
|
|
|
243
381
|
## Security and Privacy
|
|
244
382
|
|
|
@@ -263,9 +401,18 @@ See also:
|
|
|
263
401
|
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
264
402
|
- [docs/github-discussions-setup.md](docs/github-discussions-setup.md)
|
|
265
403
|
|
|
266
|
-
## Release
|
|
267
|
-
|
|
268
|
-
|
|
404
|
+
## Release and Launch State
|
|
405
|
+
|
|
406
|
+
The npm package release target for this batch is `packet-tracer-skill@0.2.2`. Remaining launch ops are GitHub release application, About/Topics updates, Discussions setup, and public proof follow-up.
|
|
407
|
+
|
|
408
|
+
So the current state is no longer “preparing to publish.” The package line is public. The remaining work is about making the public surface honest and complete:
|
|
409
|
+
|
|
410
|
+
- GitHub release object should match the published npm state
|
|
411
|
+
- About/Topics should match the README and launch wording
|
|
412
|
+
- Discussions should exist as the feedback intake surface
|
|
413
|
+
- donor proof should exist as the first post-launch technical evidence layer
|
|
414
|
+
|
|
415
|
+
That is the difference between “published” and “productized.” The current repo is published; these follow-up documents are what make it operationally coherent.
|
|
269
416
|
|
|
270
417
|
Recommended local validation before release:
|
|
271
418
|
|
|
@@ -277,12 +424,14 @@ python .\scripts\generate_pkt.py --parity-report "campus with VLAN DHCP ACL"
|
|
|
277
424
|
python .\scripts\runtime_doctor.py
|
|
278
425
|
```
|
|
279
426
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
- [docs/release-checklist.md](docs/release-checklist.md)
|
|
283
|
-
- [docs/publish-preview-roadmap.md](docs/publish-preview-roadmap.md)
|
|
284
|
-
- [docs/discovery-keywords.md](docs/discovery-keywords.md)
|
|
285
|
-
- [docs/github-metadata.md](docs/github-metadata.md)
|
|
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)
|
|
286
435
|
|
|
287
436
|
## Azerbaijani Summary
|
|
288
437
|
|
|
@@ -298,7 +447,7 @@ Bu repo təbii dil ilə Packet Tracer `.pkt` generate və edit etmək üçündü
|
|
|
298
447
|
|
|
299
448
|
Hazırkı prioritet:
|
|
300
449
|
|
|
301
|
-
- `0.2.
|
|
450
|
+
- `0.2.2` public preview hardening
|
|
302
451
|
- release-ready və publish-ready surface
|
|
303
452
|
- README / npm / GitHub discoverability hizalanması
|
|
304
453
|
- scenario truth source, donor registry və runtime doctor contract consistency
|
|
@@ -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
|
|
@@ -49,3 +68,10 @@ Selected donor summaries distinguish:
|
|
|
49
68
|
- mixed `registry+inferred` evidence
|
|
50
69
|
|
|
51
70
|
This is important for auditability and release messaging.
|
|
71
|
+
|
|
72
|
+
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:
|
|
73
|
+
|
|
74
|
+
- `layout_reuse_too_weak`
|
|
75
|
+
- `acceptance_evidence_too_weak`
|
|
76
|
+
- `archetype_misaligned`
|
|
77
|
+
- `runtime_subtree_missing`
|
|
@@ -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
|