packet-tracer-skill 0.2.0 → 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.
Files changed (57) hide show
  1. package/CHANGELOG.md +42 -4
  2. package/README.md +237 -88
  3. package/docs/campus-donor-proof.md +103 -0
  4. package/docs/curated-donor-registry.md +26 -0
  5. package/docs/github-launch-ops-0.2.1.md +45 -0
  6. package/docs/github-launch-ops-0.2.2.md +42 -0
  7. package/docs/github-metadata.md +23 -6
  8. package/docs/hero-demo-plan.md +18 -10
  9. package/docs/home-iot-donor-proof.md +64 -0
  10. package/docs/launch-announcement-0.2.1.md +15 -0
  11. package/docs/launch-announcement-0.2.2.md +15 -0
  12. package/docs/packet-tracer-feature-gap-atlas.md +87 -0
  13. package/docs/post-launch-follow-up.md +39 -0
  14. package/docs/publish-preview-roadmap.md +20 -17
  15. package/docs/release-checklist.md +22 -12
  16. package/docs/{release-notes-0.2.0.md → release-notes-0.2.1.md} +7 -6
  17. package/docs/release-notes-0.2.2.md +26 -0
  18. package/docs/runtime-truth.md +31 -0
  19. package/docs/wan-security-donor-proof.md +41 -0
  20. package/docs/wireless-advanced-proof.md +60 -0
  21. package/examples/README.md +13 -10
  22. package/examples/gallery.md +10 -4
  23. package/examples/index.json +3 -3
  24. package/package.json +44 -16
  25. package/references/curated-donor-registry.json +5 -2
  26. package/references/packettracer-feature-atlas.json +133 -0
  27. package/references/scenario-fixture-corpus.json +1 -0
  28. package/scripts/build_examples_index.py +27 -16
  29. package/scripts/coverage_matrix.py +559 -23
  30. package/scripts/feature_atlas.py +229 -0
  31. package/scripts/generate_pkt.py +330 -31
  32. package/scripts/intent_parser.py +278 -7
  33. package/scripts/pkt_editor.py +174 -0
  34. package/scripts/runtime_doctor.py +83 -10
  35. package/scripts/sample_catalog.py +210 -5
  36. package/docs/screenshots/.gitkeep +0 -1
  37. package/docs/screenshots/packet-tracer-topology-cropped.png +0 -0
  38. package/scripts/__pycache__/build_examples_index.cpython-314.pyc +0 -0
  39. package/scripts/__pycache__/build_sample_catalog.cpython-314.pyc +0 -0
  40. package/scripts/__pycache__/coverage_matrix.cpython-314.pyc +0 -0
  41. package/scripts/__pycache__/donor_diagnostics.cpython-314.pyc +0 -0
  42. package/scripts/__pycache__/generate_pkt.cpython-314.pyc +0 -0
  43. package/scripts/__pycache__/install_skill.cpython-314.pyc +0 -0
  44. package/scripts/__pycache__/intent_parser.cpython-314.pyc +0 -0
  45. package/scripts/__pycache__/packet_tracer_env.cpython-314.pyc +0 -0
  46. package/scripts/__pycache__/pkt_builder.cpython-314.pyc +0 -0
  47. package/scripts/__pycache__/pkt_codec.cpython-314.pyc +0 -0
  48. package/scripts/__pycache__/pkt_editor.cpython-314.pyc +0 -0
  49. package/scripts/__pycache__/pkt_transformer.cpython-314.pyc +0 -0
  50. package/scripts/__pycache__/remote_search.cpython-314.pyc +0 -0
  51. package/scripts/__pycache__/runtime_doctor.cpython-314.pyc +0 -0
  52. package/scripts/__pycache__/sample_catalog.cpython-314.pyc +0 -0
  53. package/scripts/__pycache__/sample_selector.cpython-314.pyc +0 -0
  54. package/scripts/__pycache__/twofish_diagnostics.cpython-314.pyc +0 -0
  55. package/scripts/__pycache__/twofish_runtime.cpython-314.pyc +0 -0
  56. package/scripts/__pycache__/workspace_repair.cpython-314.pyc +0 -0
  57. package/scripts/vendor/__pycache__/twofish.cpython-314.pyc +0 -0
package/CHANGELOG.md CHANGED
@@ -2,9 +2,47 @@
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
-
7
- ## [0.2.0]
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
+
27
+ ## [0.2.1]
28
+
29
+ ### Added
30
+
31
+ - npm tarball hardening for the public package surface
32
+ - launch announcement draft aligned with the current public release wording
33
+
34
+ ### Changed
35
+
36
+ - package version advanced to `0.2.1` because `0.2.0` is already published on npm
37
+ - npm package contents now exclude caches, generated previews, and non-essential screenshot payloads
38
+ - public release references now consistently point to the `0.2.1` patch release artifacts
39
+
40
+ ### Notes
41
+
42
+ - `0.2.1` is the publishable patch release for the conservative public preview surface
43
+ - runtime messaging remains Windows-first and explicit about the external bridge-assisted validation path
44
+
45
+ ## [0.2.0]
8
46
 
9
47
  ### Added
10
48
 
@@ -14,7 +52,7 @@ The format is intentionally simple and release-oriented.
14
52
  - runtime truth, discovery keyword, GitHub metadata, publish-preview roadmap, and curated donor registry docs
15
53
  - seeded curated donor registry entries derived from known working public example artifacts
16
54
  - checked-in Packet Tracer template fallback assets for hermetic builder coverage
17
- - hero demo plan and `0.2.0` release notes draft artifacts for conservative launch prep
55
+ - hero demo plan and `0.2.0` release notes draft artifacts for conservative launch prep
18
56
 
19
57
  ### Changed
20
58
 
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.0` public preview prep is focused on:
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
- - release-notes-ready and GitHub-metadata-ready launch surface
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-prep references:
103
-
104
- - [docs/release-notes-0.2.0.md](docs/release-notes-0.2.0.md)
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
- - `recommended_next_steps`
118
- - `doctor_summary`
119
- - `runtime_grade`
120
- - `bridge_resolution`
121
- - `bridge_path_source`
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
- Runtime truth reference:
144
-
145
- - [docs/runtime-truth.md](docs/runtime-truth.md)
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
- $env:PKT_TWOFISH_LIBRARY="$env:USERPROFILE\.codex\skills\pkt\scripts\vendor\_twofish.cp314-win_amd64.pyd"
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
- Required policy:
168
-
169
- - keep `PACKET_TRACER_TARGET_VERSION` on `9.0.0.0810`
170
- - do not downgrade the workflow to `5.3`
171
- - if donor or bridge is missing, fix the runtime instead of weakening the compatibility profile
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
- Stable CLI surfaces:
194
-
195
- - `--explain-plan`
196
- - `--compare-scenarios`
197
- - `--matrix-out`
198
- - `--coverage-report`
199
- - `--inventory-capabilities`
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
- Curated donor registry reference:
212
-
213
- - [docs/curated-donor-registry.md](docs/curated-donor-registry.md)
214
-
215
- ## Known Working Scenario Set
216
-
217
- Public examples stay text-first and review-friendly. Raw `.pkt` binaries are not committed.
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
  ![Packet Tracer topology](examples/screenshots/complex_campus_master_edit_v4.png)
236
347
 
237
- Hero visual for the `0.2.0` launch-prep surface:
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 Readiness
267
-
268
- This repo is being hardened toward a publish-ready and release-ready surface.
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
- Publish-preview references:
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.0` public preview prep
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