packet-tracer-skill 0.1.0 → 0.2.1

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 (51) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/CITATION.cff +15 -0
  3. package/CODE_OF_CONDUCT.md +26 -0
  4. package/CONTRIBUTING.md +120 -0
  5. package/README.md +164 -543
  6. package/SECURITY.md +36 -0
  7. package/SKILL.md +46 -5
  8. package/bin/packet-tracer-skill.js +503 -7
  9. package/docs/curated-donor-registry.md +51 -0
  10. package/docs/discovery-keywords.md +55 -0
  11. package/docs/github-discussions-setup.md +34 -0
  12. package/docs/github-metadata.md +33 -0
  13. package/docs/hero-demo-plan.md +50 -0
  14. package/docs/launch-announcement-0.2.1.md +15 -0
  15. package/docs/publish-preview-roadmap.md +31 -0
  16. package/docs/release-checklist.md +60 -0
  17. package/docs/release-notes-0.2.1.md +25 -0
  18. package/docs/runtime-truth.md +49 -0
  19. package/examples/README.md +72 -0
  20. package/examples/complex_campus_master_edit_v4.inventory.json +94 -0
  21. package/examples/gallery.md +39 -0
  22. package/examples/home_iot_cli_edit_v1.inventory.json +58 -0
  23. package/examples/index.json +127 -0
  24. package/examples/screenshots/complex_campus_master_edit_v4.png +0 -0
  25. package/examples/screenshots/home_iot_cli_edit_v1.png +0 -0
  26. package/examples/screenshots/service_heavy_cli_edit_v1.png +0 -0
  27. package/examples/screenshots/service_heavy_cli_edit_v1_dhcp.png +0 -0
  28. package/examples/screenshots/service_heavy_cli_edit_v1_dns.png +0 -0
  29. package/examples/screenshots/service_heavy_cli_edit_v1_ftp.png +0 -0
  30. package/examples/service_heavy_cli_edit_v1.inventory.json +51 -0
  31. package/package.json +71 -16
  32. package/references/curated-donor-registry.json +71 -0
  33. package/references/scenario-fixture-corpus.json +53 -0
  34. package/scripts/build_examples_index.py +314 -0
  35. package/scripts/coverage_matrix.py +783 -0
  36. package/scripts/donor_diagnostics.py +6 -3
  37. package/scripts/generate_pkt.py +2605 -98
  38. package/scripts/intent_parser.py +173 -18
  39. package/scripts/packet_tracer_env.py +127 -14
  40. package/scripts/pkt_editor.py +312 -12
  41. package/scripts/pkt_transformer.py +195 -9
  42. package/scripts/remote_search.py +169 -0
  43. package/scripts/runtime_doctor.py +286 -0
  44. package/scripts/sample_catalog.py +643 -38
  45. package/scripts/sample_selector.py +251 -5
  46. package/scripts/setup.ps1 +2 -1
  47. package/scripts/twofish_diagnostics.py +20 -23
  48. package/scripts/twofish_runtime.py +101 -0
  49. package/scripts/vendor/README.md +13 -1
  50. package/scripts/vendor/twofish.py +11 -9
  51. package/scripts/workspace_repair.py +69 -2
package/README.md CHANGED
@@ -1,60 +1,69 @@
1
- # packet-tracer-skill
1
+ # packet-tracer-skill
2
+
3
+ [![CI](https://github.com/20hajiyev/packet-tracer-skill/actions/workflows/ci.yml/badge.svg)](https://github.com/20hajiyev/packet-tracer-skill/actions/workflows/ci.yml)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
+ [![Packet Tracer 9.0](https://img.shields.io/badge/Packet%20Tracer-9.0.0.0810-blue.svg)](https://github.com/20hajiyev/packet-tracer-skill)
2
6
 
3
7
  Cisco Packet Tracer 9.x `.pkt` generator and editor for skill-based coding hosts.
4
8
 
5
- Bu repository skill əsaslı coding host-lar üçün Cisco Packet Tracer 9.x `.pkt`
6
- generatoru və editorudur.
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.
7
10
 
8
- <table>
9
- <tr>
10
- <td>
11
- <strong>Choose your language / Dilinizi seçin</strong><br />
12
- <a href="#english">🇬🇧 English</a>
13
- &nbsp;|&nbsp;
14
- <a href="#azerbaycan-dili">🇦🇿 Azərbaycan dili</a>
15
- </td>
16
- </tr>
17
- </table>
11
+ `0.2.1` public preview hardening is focused on:
18
12
 
19
- ---
13
+ - donor-backed and scenario-aware public messaging
14
+ - conservative Windows-first runtime truth
15
+ - known working scenario set examples with acceptance-backed artifacts
16
+ - release-notes-ready and GitHub-metadata-ready launch surface
20
17
 
21
- <a id="english"></a>
22
- ## English
18
+ ## Why It Is Different
23
19
 
24
- ### Overview
20
+ `packet-tracer-skill` is not a generic topology sketcher. It is a donor-backed Packet Tracer workflow with strict refusal behavior:
25
21
 
26
- This repository is built for one specific job: take a natural-language network
27
- request, plan it explicitly, adapt a compatible local Cisco Packet Tracer donor
28
- lab, and produce a `.pkt` file that opens cleanly in Packet Tracer 9.x.
22
+ - generation stays `single-donor apply`
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
29
26
 
30
- Design defaults:
27
+ Current product strengths:
31
28
 
32
- - Cisco local samples are the primary donor source
33
- - external labs are reference-only
34
- - prompt parsing happens before generation
35
- - generation uses donor-prune adaptation for compatibility
36
- - unsafe requests return `blocking_gaps` instead of guessed output
29
+ - `open-first` generate guard
30
+ - donor-aware and scenario-aware decision layer
31
+ - `compare-scenarios`, `capability_parity`, curated donor registry
32
+ - runtime doctor contract with bridge resolution
33
+ - known working examples with screenshots and acceptance excerpts
37
34
 
38
- ### Host Support
35
+ ## Runtime Reality
39
36
 
40
37
  Use the same repository, then install it into the skill path your host expects.
41
38
 
42
39
  | Tool | Install | First Use |
43
40
  | --- | --- | --- |
41
+ | Codex CLI | `npx packet-tracer-skill` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
42
+ | Cursor | `npx packet-tracer-skill --cursor` | `@pkt build a Packet Tracer lab with VLAN and DHCP` |
44
43
  | Claude Code | `npx packet-tracer-skill --claude` | `Use /pkt to build a Packet Tracer lab with VLAN and DHCP` |
45
44
  | Claude Desktop | `npx packet-tracer-skill --path <claude-desktop-skills-dir>` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
46
- | Cursor | `npx packet-tracer-skill --cursor` | `@pkt build a Packet Tracer lab with VLAN and DHCP` |
47
45
  | Gemini CLI | `npx packet-tracer-skill --path <gemini-skills-dir>` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
48
- | Codex CLI | `npx packet-tracer-skill` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
49
- | Antigravity | `npx packet-tracer-skill --path <antigravity-skills-dir>` | `Use @pkt to build a Packet Tracer lab with VLAN and DHCP` |
50
- | Kiro CLI | `npx packet-tracer-skill --kiro` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
51
- | Kiro IDE | `npx packet-tracer-skill --kiro` | `Use @pkt to build a Packet Tracer lab with VLAN and DHCP` |
52
- | GitHub Copilot | Copy this repo into your local prompts/rules/skills docs | `Ask Copilot to use pkt to build a Packet Tracer lab with VLAN and DHCP` |
53
- | OpenCode | `npx packet-tracer-skill --path .agents/skills` | `opencode run @pkt build a Packet Tracer lab with VLAN and DHCP` |
46
+ | Kiro CLI / IDE | `npx packet-tracer-skill --kiro` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
54
47
  | AdaL CLI | `npx packet-tracer-skill --adal` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
55
- | Custom path | `npx packet-tracer-skill --path ./my-skills` | Depends on your tool |
48
+ | OpenCode | `npx packet-tracer-skill --path .agents/skills` | `opencode run @pkt build a Packet Tracer lab with VLAN and DHCP` |
49
+ | Custom path | `npx packet-tracer-skill --path ./my-skills` | depends on the host |
56
50
 
57
- ### Quick Start
51
+ The installer can be used on multiple hosts, but real `.pkt` runtime remains Windows-first and doctor-governed.
52
+
53
+ | Platform | Installer / skill copy | Real `.pkt` runtime |
54
+ | --- | --- | --- |
55
+ | Windows | Supported | Acceptance-verified |
56
+ | macOS | Partially supported | Runtime contract defined, not acceptance-verified |
57
+ | Linux | Partially supported | Runtime contract defined, not acceptance-verified |
58
+
59
+ Important runtime rule:
60
+
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
65
+
66
+ ## Quick Start
58
67
 
59
68
  Default install for Codex:
60
69
 
@@ -62,39 +71,27 @@ Default install for Codex:
62
71
  npx packet-tracer-skill
63
72
  ```
64
73
 
65
- That already installs everything shipped inside this repository.
66
-
67
- If you want one command that installs everything this repository can install by
68
- itself, use bootstrap:
74
+ Bootstrap install:
69
75
 
70
76
  ```powershell
71
77
  npx packet-tracer-skill --bootstrap
72
78
  ```
73
79
 
74
- That command:
75
-
76
- - installs the skill into the selected host path
77
- - creates a local `.venv` inside the installed skill directory
78
- - installs declared Python requirements from this repository
79
-
80
- It still does not install Cisco Packet Tracer itself.
81
-
82
- Common targets:
80
+ Verification:
83
81
 
84
82
  ```powershell
85
- npx packet-tracer-skill --path <claude-desktop-skills-dir>
86
- npx packet-tracer-skill --cursor
87
- npx packet-tracer-skill --claude
88
- npx packet-tracer-skill --kiro
83
+ npx packet-tracer-skill --verify
84
+ npx packet-tracer-skill --verify --cursor
89
85
  ```
90
86
 
91
- If PowerShell blocks `npx.ps1`, use:
87
+ Runtime doctor:
92
88
 
93
89
  ```powershell
94
- cmd /c npx packet-tracer-skill --cursor
90
+ npx packet-tracer-skill --doctor
91
+ python .\scripts\runtime_doctor.py
95
92
  ```
96
93
 
97
- If you want the local development setup instead:
94
+ Local development:
98
95
 
99
96
  ```powershell
100
97
  git clone https://github.com/20hajiyev/packet-tracer-skill.git
@@ -102,51 +99,52 @@ cd .\packet-tracer-skill
102
99
  powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
103
100
  ```
104
101
 
105
- ### Verify the Install
102
+ Launch-prep references:
106
103
 
107
- Check that the skill was installed into the expected target path:
104
+ - [docs/release-notes-0.2.1.md](docs/release-notes-0.2.1.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)
108
108
 
109
- ```powershell
110
- npx packet-tracer-skill --verify
111
- npx packet-tracer-skill --verify --cursor
112
- npx packet-tracer-skill --verify --path .agents/skills
113
- ```
109
+ ## Runtime Doctor Contract
114
110
 
115
- From a local clone:
111
+ `--doctor` is a product surface, not a debug afterthought. It reports:
116
112
 
117
- ```powershell
118
- node .\bin\packet-tracer-skill.js --verify
119
- python .\scripts\install_skill.py --host codex --force
120
- ```
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`
122
+ - `bridge_recommendation`
123
+ - `runtime_contract_notes`
121
124
 
122
- ### Check Runtime Requirements
125
+ Bridge resolution states:
123
126
 
124
- Repository install and runtime readiness are different things.
127
+ - `repo_local`
128
+ - `external_env`
129
+ - `missing`
125
130
 
126
- - `install` copies the skill files
127
- - `doctor` checks system prerequisites for real `.pkt` generation
131
+ Runtime grade states:
128
132
 
129
- Run:
133
+ - `ready`
134
+ - `partially_ready`
135
+ - `blocked`
130
136
 
131
- ```powershell
132
- npx packet-tracer-skill --doctor
133
- ```
137
+ Important distinction:
134
138
 
135
- It checks:
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
136
142
 
137
- - `node`
138
- - `python`
139
- - `python_version`
140
- - `python_support_status`
141
- - `PACKET_TRACER_ROOT`
142
- - `PACKET_TRACER_TARGET_VERSION`
143
- - `PACKET_TRACER_COMPAT_DONOR`
144
- - donor version compatibility with the target Packet Tracer version
145
- - `resolved_twofish_path`
146
- - `twofish_load_status`
147
- - `twofish_sha256`
143
+ Runtime truth reference:
148
144
 
149
- ### Runtime Configuration
145
+ - [docs/runtime-truth.md](docs/runtime-truth.md)
146
+
147
+ ## Runtime Configuration
150
148
 
151
149
  Set the local Packet Tracer environment before real `.pkt` generation:
152
150
 
@@ -164,176 +162,93 @@ Important variables:
164
162
  - `PACKET_TRACER_COMPAT_DONOR`
165
163
  - `PACKET_TRACER_TARGET_VERSION`
166
164
  - `PKT_TWOFISH_LIBRARY`
167
-
168
- Donor policy:
169
-
170
- - `PACKET_TRACER_COMPAT_DONOR` is an explicit override
171
- - if it is not set, the repo tries to auto-detect a local Packet Tracer 9.0 donor from common local locations
172
- - if it is set and wrong, the repo does not silently fall back to another donor
165
+ - `PKT_TWOFISH_SEARCH_ROOTS`
173
166
 
174
167
  Required policy:
175
168
 
176
169
  - keep `PACKET_TRACER_TARGET_VERSION` on `9.0.0.0810`
177
- - do not switch the target version to `5.3.0.0011`
178
- - do not use a legacy `5.3` donor or template fallback to bypass strict 9.0 generation
179
- - if the donor is missing or version-mismatched, stop and fix the donor instead of downgrading the workflow
180
-
181
- Host note:
182
-
183
- - the host process must inherit the same `PACKET_TRACER_*` and `PKT_TWOFISH_LIBRARY` environment variables
184
- - this applies to every host equally: Codex, Cursor, Claude Code, Claude Desktop, Antigravity, Gemini CLI, Kiro, and similar tools
185
- - if a host wrapper blocks child-process inspection, run `python .\scripts\donor_diagnostics.py` from a local clone to verify the donor directly
186
-
187
- Where to place the Twofish binary:
188
-
189
- - preferred: put `_twofish.cp314-win_amd64.pyd` next to `scripts/vendor/twofish.py` inside the installed skill folder
190
- - override: set `PKT_TWOFISH_LIBRARY` to the exact local binary path
191
- - do not point `PKT_TWOFISH_LIBRARY` at a placeholder path such as `C:\tools\pkt-twofish\...` unless that file actually exists
192
-
193
- ### What This Repo Does
194
-
195
- - Parses hybrid Azerbaijani + English prompts
196
- - Builds explicit `IntentPlan`, `TopologyPlan`, and `ConfigPlan`
197
- - Ranks Cisco local donors by capability and topology fit
198
- - Uses donor-prune adaptation for Packet Tracer 9.x compatibility
199
- - Edits existing `.pkt` labs
200
- - Supports VLAN, router-on-a-stick, DHCP, DNS, Telnet, ACL, wireless/AP-client, and department/campus layouts
201
- - Explains the plan before generation with `--explain-plan`
202
-
203
- ### Explain-Plan Output
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
204
172
 
205
- `--explain-plan` reports:
173
+ ## Core Product Surfaces
206
174
 
207
- - `intent_plan`
208
- - `topology_plan`
209
- - `config_plan`
210
- - `estimate_plan`
211
- - `preflight_validation`
212
- - `autofix_summary`
213
- - `validation_report`
214
- - `cisco_sample_candidates`
215
- - `external_reference_patterns`
216
- - `assumptions_used`
217
-
218
- This is the main debugging surface for prompt quality.
219
-
220
- ### External Reference Workflow
221
-
222
- External `.pkt` collections must be local first. This tool does not scrape the
223
- internet and does not use GitHub URLs directly as donors.
224
-
225
- Workflow:
226
-
227
- 1. clone or copy the external repo locally
228
- 2. pass that folder with `--reference-root`
229
- 3. inspect `external_reference_patterns` in `--explain-plan`
230
-
231
- Example:
175
+ Use `--explain-plan` when you need the full decision payload:
232
176
 
233
177
  ```powershell
234
- python .\scripts\generate_pkt.py --explain-plan "6 şöbəli şəbəkə qur, hər şöbədə 1 switch 1 AP 1 printer 2 PC 2 tablet olsun" --reference-root C:\labs\external-pkt-samples
178
+ python .\scripts\generate_pkt.py --explain-plan "6 department campus with router-on-a-stick, VLAN, DHCP, management VLAN, Telnet, ACL"
235
179
  ```
236
180
 
237
- ### Common Commands
238
-
239
- Build the Cisco sample catalog:
181
+ Use `--compare-scenarios` when you need scenario comparison:
240
182
 
241
183
  ```powershell
242
- python .\scripts\build_sample_catalog.py
184
+ python .\scripts\generate_pkt.py --compare-scenarios "campus with VLAN DHCP ACL" --compare-scenarios "smart home with IoT registration" --matrix-out .\output\compare.json
243
185
  ```
244
186
 
245
- Explain a simple prompt:
187
+ Use `--parity-report` for prompt-scoped capability readiness:
246
188
 
247
189
  ```powershell
248
- python .\scripts\generate_pkt.py --explain-plan "3 dene switch ve 6 komputer"
190
+ python .\scripts\generate_pkt.py --parity-report "service-heavy lab with DNS DHCP FTP email syslog AAA"
249
191
  ```
250
192
 
251
- Explain a donor-prune campus prompt:
193
+ Stable CLI surfaces:
252
194
 
253
- ```powershell
254
- python .\scripts\generate_pkt.py --explain-plan "6 şöbəli şəbəkə qur, hər şöbədə 1 switch, 1 AP, 1 printer, 2 PC, 2 tablet olsun, router-on-a-stick olsun, DHCP routerdən verilsin, management VLAN və telnet olsun"
255
- ```
195
+ - `--explain-plan`
196
+ - `--compare-scenarios`
197
+ - `--matrix-out`
198
+ - `--coverage-report`
199
+ - `--inventory-capabilities`
200
+ - `--doctor`
201
+ - `--parity-report`
202
+ - `--acceptance-json-out`
256
203
 
257
- Generate a `.pkt`:
204
+ ## Curated Donor and Fixture Truth Sources
258
205
 
259
- ```powershell
260
- python .\scripts\generate_pkt.py --prompt "6 şöbəli şəbəkə qur, hər şöbədə 1 switch, 1 AP, 1 printer, 2 PC, 2 tablet olsun, router-on-a-stick olsun, DHCP routerdən verilsin, management VLAN və telnet olsun" --output .\output\campus.pkt --xml-out .\output\campus.xml
261
- ```
206
+ This repository keeps explicit truth sources for donor evidence and scenario regression:
262
207
 
263
- Inspect an existing `.pkt`:
208
+ - `references/curated-donor-registry.json`
209
+ - `references/scenario-fixture-corpus.json`
264
210
 
265
- ```powershell
266
- python .\scripts\generate_pkt.py --inventory .\input\lab.pkt
267
- ```
211
+ Curated donor registry reference:
268
212
 
269
- Decode a `.pkt`:
213
+ - [docs/curated-donor-registry.md](docs/curated-donor-registry.md)
270
214
 
271
- ```powershell
272
- python .\scripts\generate_pkt.py --decode .\output\campus.pkt --xml-out .\output\campus.xml
273
- ```
215
+ ## Known Working Scenario Set
274
216
 
275
- ### Requirements
217
+ Public examples stay text-first and review-friendly. Raw `.pkt` binaries are not committed.
276
218
 
277
- - Windows
278
- - Cisco Packet Tracer 9.x installed locally
279
- - local Cisco Packet Tracer sample saves
280
- - a local Packet Tracer 9.x donor lab
281
- - a local Twofish bridge compatible with your Python runtime
219
+ Canonical public examples:
282
220
 
283
- Python setup:
221
+ - `complex_campus_master_edit_v4`
222
+ - `home_iot_cli_edit_v1`
223
+ - `service_heavy_cli_edit_v1`
224
+
225
+ Gallery and manifests:
284
226
 
285
227
  ```powershell
286
- powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
228
+ python .\scripts\build_examples_index.py
229
+ Get-Content .\examples\gallery.md
230
+ Get-Content .\examples\index.json
287
231
  ```
288
232
 
289
- ### Twofish Bridge
290
-
291
- This public repo does not ship a prebuilt Twofish bridge binary by default.
292
-
293
- That is intentional:
294
-
295
- - no machine-specific binary is committed by default
296
- - no unsigned local artifact is published by accident
297
- - no private path or build residue is shared by default
233
+ Primary screenshot:
298
234
 
299
- Runtime policy:
235
+ ![Packet Tracer topology](examples/screenshots/complex_campus_master_edit_v4.png)
300
236
 
301
- - supported Python runtime: `3.14.x` only
302
- - the current bridge filename is ABI-specific: `_twofish.cp314-win_amd64.pyd`
303
- - if you use Python `3.12`, `3.13`, `3.15`, or another ABI-incompatible build, `doctor` should report the runtime as unsupported
237
+ Hero visual for the `0.2.1` public preview surface:
304
238
 
305
- Read `scripts/vendor/README.md` for local setup.
239
+ - `examples/screenshots/complex_campus_master_edit_v4.png`
306
240
 
307
- ### Common Failures
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.
308
242
 
309
- - `PACKET_TRACER_COMPAT_DONOR set but missing`
310
- - the configured donor path does not exist
311
- - fix the path or unset it and let the repo auto-detect a donor
312
- - `PACKET_TRACER_COMPAT_DONOR_VERSION version_mismatch`
313
- - the donor exists, but it is not a `9.0.0.0810` file
314
- - do not downgrade to `5.3.0.0011`
315
- - `TWOFISH_LOAD_STATUS missing`
316
- - no local bridge was found
317
- - put `_twofish.cp314-win_amd64.pyd` next to `scripts/vendor/twofish.py` or set `PKT_TWOFISH_LIBRARY`
318
- - `PYTHON_SUPPORT_STATUS unsupported`
319
- - your runtime is not Python `3.14.x`
320
- - install Python 3.14 and rerun `--doctor`
321
-
322
- ### Screenshot
323
-
324
- Generated campus topology opened in Cisco Packet Tracer:
325
-
326
- ![Packet Tracer topology](docs/screenshots/packet-tracer-topology-cropped.png)
327
-
328
- ### Security and Privacy
243
+ ## Security and Privacy
329
244
 
330
245
  This repo is prepared to avoid accidental sharing of local private material:
331
246
 
332
247
  - no hardcoded donor path is committed
333
248
  - no `C:\Users\<name>\...` donor path is baked into config
334
249
  - generated `.pkt` and `.xml` files are gitignored
335
- - Python cache files are gitignored
336
- - Twofish bridge binaries are gitignored
250
+ - public sample labs should be committed as inventory JSON or blueprint JSON, not raw `.pkt` binaries
251
+ - Twofish bridge binaries are gitignored by default
337
252
 
338
253
  Before publishing:
339
254
 
@@ -341,347 +256,53 @@ Before publishing:
341
256
  - do not commit generated labs unless you intend to share them
342
257
  - do not commit locally built bridge binaries unless you reviewed them
343
258
 
344
- ### Current Limitations
259
+ See also:
345
260
 
346
- - Packet Tracer 9.x only
347
- - Windows-first workflow
348
- - donor-prune generation is bounded by donor capacity
349
- - external labs are not donors by default
350
- - bundled template coverage is intentionally limited
351
-
352
- ### License
353
-
354
- This project is licensed under the MIT License.
261
+ - [CONTRIBUTING.md](CONTRIBUTING.md)
262
+ - [SECURITY.md](SECURITY.md)
263
+ - [docs/release-checklist.md](docs/release-checklist.md)
264
+ - [docs/github-discussions-setup.md](docs/github-discussions-setup.md)
355
265
 
356
- ---
266
+ ## Release Readiness
357
267
 
358
- <a id="azerbaycan-dili"></a>
359
- ## Azərbaycan dili
268
+ This repo is being hardened toward a publish-ready and release-ready surface.
360
269
 
361
- ### Ümumi baxış
362
-
363
- Bu repository bir konkret iş üçün qurulub: təbii dildə yazılmış şəbəkə
364
- istəyini başa düşmək, onu açıq plan şəklinə salmaq, lokal Cisco Packet Tracer
365
- donor labını uyğunlaşdırmaq və Packet Tracer 9.x-də açılan `.pkt` faylı
366
- yaratmaq.
367
-
368
- Əsas prinsiplər:
369
-
370
- - Cisco-nun lokal sample-ları əsas donor mənbəyidir
371
- - xarici lab-lar yalnız reference kimi istifadə olunur
372
- - prompt əvvəl parse olunur, sonra generate edilir
373
- - uyğunluq üçün donor-prune yanaşması istifadə olunur
374
- - natamam istəklər üçün uydurma nəticə yox, `blocking_gaps` qaytarılır
375
-
376
- ### Host dəstəyi
377
-
378
- Eyni repository istifadə olunur, sadəcə host-un gözlədiyi skill yoluna
379
- quraşdırılır.
380
-
381
- | Alət | Quraşdırma | İlk istifadə |
382
- | --- | --- | --- |
383
- | Claude Code | `npx packet-tracer-skill --claude` | `Use /pkt to build a Packet Tracer lab with VLAN and DHCP` |
384
- | Claude Desktop | `npx packet-tracer-skill --path <claude-desktop-skills-dir>` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
385
- | Cursor | `npx packet-tracer-skill --cursor` | `@pkt build a Packet Tracer lab with VLAN and DHCP` |
386
- | Gemini CLI | `npx packet-tracer-skill --path <gemini-skills-dir>` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
387
- | Codex CLI | `npx packet-tracer-skill` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
388
- | Antigravity | `npx packet-tracer-skill --path <antigravity-skills-dir>` | `Use @pkt to build a Packet Tracer lab with VLAN and DHCP` |
389
- | Kiro CLI | `npx packet-tracer-skill --kiro` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
390
- | Kiro IDE | `npx packet-tracer-skill --kiro` | `Use @pkt to build a Packet Tracer lab with VLAN and DHCP` |
391
- | GitHub Copilot | Bu repo-nu lokal prompts/rules/skills docs qovluğuna köçür | `Ask Copilot to use pkt to build a Packet Tracer lab with VLAN and DHCP` |
392
- | OpenCode | `npx packet-tracer-skill --path .agents/skills` | `opencode run @pkt build a Packet Tracer lab with VLAN and DHCP` |
393
- | AdaL CLI | `npx packet-tracer-skill --adal` | `Use pkt to build a Packet Tracer lab with VLAN and DHCP` |
394
- | Custom path | `npx packet-tracer-skill --path ./my-skills` | Host-a görə dəyişir |
395
-
396
- ### Sürətli başlanğıc
397
-
398
- Codex üçün standart quraşdırma:
270
+ Recommended local validation before release:
399
271
 
400
272
  ```powershell
401
- npx packet-tracer-skill
273
+ python .\scripts\build_examples_index.py
274
+ python -m pytest tests -q
275
+ node --check .\bin\packet-tracer-skill.js
276
+ python .\scripts\generate_pkt.py --parity-report "campus with VLAN DHCP ACL"
277
+ python .\scripts\runtime_doctor.py
402
278
  ```
403
279
 
404
- Bu komanda repository daxilində olan bütün faylları quraşdırır.
405
-
406
- Əgər repository-nin quraşdıra bildiyi hər şeyi bir komandada qurmaq
407
- istəyirsənsə, `bootstrap` istifadə et:
408
-
409
- ```powershell
410
- npx packet-tracer-skill --bootstrap
411
- ```
412
-
413
- Bu komanda:
414
-
415
- - skill-i seçilmiş host yoluna quraşdırır
416
- - quraşdırılmış skill qovluğunda lokal `.venv` yaradır
417
- - repository-də elan edilmiş Python tələblərini quraşdırır
418
-
419
- Amma Cisco Packet Tracer-in özünü quraşdırmır.
420
-
421
- Tez-tez lazım olan digər variantlar:
280
+ Publish-preview references:
422
281
 
423
- ```powershell
424
- npx packet-tracer-skill --path <claude-desktop-skills-dir>
425
- npx packet-tracer-skill --cursor
426
- npx packet-tracer-skill --claude
427
- npx packet-tracer-skill --kiro
428
- ```
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)
429
286
 
430
- Əgər PowerShell `npx.ps1` faylını bloklayırsa:
287
+ ## Azerbaijani Summary
431
288
 
432
- ```powershell
433
- cmd /c npx packet-tracer-skill --cursor
434
- ```
289
+ Bu repo təbii dil ilə Packet Tracer `.pkt` generate və edit etmək üçündür, amma əsas fərqi ondadır ki, bunu donor-backed və open-first qayda ilə edir. Yəni donor, parity, acceptance və runtime hazır deyilsə, sistem guess etmir, refusal və remediation qaytarır.
435
290
 
436
- Əgər repo üzərində lokal development qurmaq istəyirsənsə:
291
+ Əsas public səthlər:
437
292
 
438
- ```powershell
439
- git clone https://github.com/20hajiyev/packet-tracer-skill.git
440
- cd .\packet-tracer-skill
441
- powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
442
- ```
293
+ - `--explain-plan`
294
+ - `--compare-scenarios`
295
+ - `--parity-report`
296
+ - `--doctor`
297
+ - examples gallery və acceptance excerpt-lər
443
298
 
444
- ### Quraşdırmanı yoxlama
299
+ Hazırkı prioritet:
445
300
 
446
- Skill-in gözlənilən host yoluna yazıldığını yoxlamaq üçün:
301
+ - `0.2.1` public preview hardening
302
+ - release-ready və publish-ready surface
303
+ - README / npm / GitHub discoverability hizalanması
304
+ - scenario truth source, donor registry və runtime doctor contract consistency
447
305
 
448
- ```powershell
449
- npx packet-tracer-skill --verify
450
- npx packet-tracer-skill --verify --cursor
451
- npx packet-tracer-skill --verify --path .agents/skills
452
- ```
306
+ ## License
453
307
 
454
- Əgər lokal clone ilə işləyirsənsə:
455
-
456
- ```powershell
457
- node .\bin\packet-tracer-skill.js --verify
458
- python .\scripts\install_skill.py --host codex --force
459
- ```
460
-
461
- ### Runtime tələblərini yoxlama
462
-
463
- Repository-nin quraşdırılması ilə runtime hazırlığı eyni şey deyil.
464
-
465
- - `install` skill fayllarını kopyalayır
466
- - `doctor` real `.pkt` generasiya üçün sistem tələblərini yoxlayır
467
-
468
- İşlət:
469
-
470
- ```powershell
471
- npx packet-tracer-skill --doctor
472
- ```
473
-
474
- Yoxladığı şeylər:
475
-
476
- - `node`
477
- - `python`
478
- - `python_version`
479
- - `python_support_status`
480
- - `PACKET_TRACER_ROOT`
481
- - `PACKET_TRACER_TARGET_VERSION`
482
- - `PACKET_TRACER_COMPAT_DONOR`
483
- - donor faylının target Packet Tracer versiyası ilə uyğun olub-olmaması
484
- - `resolved_twofish_path`
485
- - `twofish_load_status`
486
- - `twofish_sha256`
487
-
488
- ### Runtime konfiqurasiyası
489
-
490
- Real `.pkt` generate etməzdən əvvəl lokal Packet Tracer mühitini qur:
491
-
492
- ```powershell
493
- $env:PACKET_TRACER_ROOT='C:\Program Files\Cisco Packet Tracer 9.0.0'
494
- $env:PACKET_TRACER_COMPAT_DONOR='C:\path\to\your-working-9.0-donor.pkt'
495
- $env:PKT_TWOFISH_LIBRARY="$env:USERPROFILE\.codex\skills\pkt\scripts\vendor\_twofish.cp314-win_amd64.pyd"
496
- ```
497
-
498
- Əsas environment dəyişənləri:
499
-
500
- - `PACKET_TRACER_ROOT`
501
- - `PACKET_TRACER_SAVES_ROOT`
502
- - `PACKET_TRACER_EXE`
503
- - `PACKET_TRACER_COMPAT_DONOR`
504
- - `PACKET_TRACER_TARGET_VERSION`
505
- - `PKT_TWOFISH_LIBRARY`
506
-
507
- Donor siyasəti:
508
-
509
- - `PACKET_TRACER_COMPAT_DONOR` explicit override kimi qalır
510
- - o verilməyibsə, repo lokal yayğın qovluqlarda uyğun Packet Tracer 9.0 donorunu avtomatik axtarmağa çalışır
511
- - o verilibsə və səhvdirsə, repo səssizcə başqa donora keçmir
512
-
513
- Məcburi qayda:
514
-
515
- - `PACKET_TRACER_TARGET_VERSION` dəyərini `9.0.0.0810` saxla
516
- - onu `5.3.0.0011`-ə dəyişmə
517
- - strict 9.0 generate axınını keçmək üçün köhnə `5.3` donor və ya template fallback istifadə etmə
518
- - donor yoxdursa və ya versiyası uyğun deyilsə, axını aşağı versiyaya salma; əvvəl donor problemini düzəlt
519
-
520
- Host qeydi:
521
-
522
- - host prosesi eyni `PACKET_TRACER_*` və `PKT_TWOFISH_LIBRARY` environment dəyişənlərini görməlidir
523
- - bu qayda bütün host-lara aiddir: Codex, Cursor, Claude Code, Claude Desktop, Antigravity, Gemini CLI, Kiro və oxşar alətlər
524
- - əgər host wrapper child-process yoxlamasını bloklayırsa, donorun özünü birbaşa yoxlamaq üçün lokal clone daxilində `python .\scripts\donor_diagnostics.py` işlət
525
-
526
- Twofish binary-ni hara qoymaq olar:
527
-
528
- - tövsiyə olunan yol: `_twofish.cp314-win_amd64.pyd` faylını quraşdırılmış skill qovluğundakı `scripts/vendor/twofish.py` faylının yanına qoy
529
- - override yolu: `PKT_TWOFISH_LIBRARY` dəyişəni ilə həmin lokal binary-nin dəqiq yolunu göstər
530
- - `C:\tools\pkt-twofish\...` kimi placeholder path yalnız həmin fayl doğrudan da orada olduqda işləyəcək
531
-
532
- ### Bu repo nə edir
533
-
534
- - Azərbaycan dili + İngilis dili qarışıq prompt-ları parse edir
535
- - açıq `IntentPlan`, `TopologyPlan` və `ConfigPlan` qurur
536
- - Cisco lokal donorlarını capability və topology uyğunluğuna görə sıralayır
537
- - Packet Tracer 9.x uyğunluğu üçün donor-prune adaptasiyası istifadə edir
538
- - mövcud `.pkt` lab-ları edit edir
539
- - VLAN, router-on-a-stick, DHCP, DNS, Telnet, ACL, wireless/AP-client və department/campus layout-larını dəstəkləyir
540
- - generate-dən əvvəl planı `--explain-plan` ilə göstərir
541
-
542
- ### Explain-plan çıxışı
543
-
544
- `--explain-plan` aşağıdakı blokları qaytarır:
545
-
546
- - `intent_plan`
547
- - `topology_plan`
548
- - `config_plan`
549
- - `estimate_plan`
550
- - `preflight_validation`
551
- - `autofix_summary`
552
- - `validation_report`
553
- - `cisco_sample_candidates`
554
- - `external_reference_patterns`
555
- - `assumptions_used`
556
-
557
- Bu, prompt keyfiyyətini debug etmək üçün əsas çıxışdır.
558
-
559
- ### Xarici reference workflow
560
-
561
- Xarici `.pkt` kolleksiyaları əvvəlcə lokal qovluqda olmalıdır. Tool internetdən
562
- scrape etmir və GitHub URL-lərini birbaşa donor kimi istifadə etmir.
563
-
564
- Workflow:
565
-
566
- 1. xarici repo-nu lokalda klonla və ya kopyala
567
- 2. həmin qovluğu `--reference-root` ilə ver
568
- 3. `--explain-plan` nəticəsində `external_reference_patterns`-ə bax
569
-
570
- Nümunə:
571
-
572
- ```powershell
573
- python .\scripts\generate_pkt.py --explain-plan "6 şöbəli şəbəkə qur, hər şöbədə 1 switch 1 AP 1 printer 2 PC 2 tablet olsun" --reference-root C:\labs\external-pkt-samples
574
- ```
575
-
576
- ### Tez-tez istifadə olunan komandalar
577
-
578
- Cisco sample catalog qurmaq:
579
-
580
- ```powershell
581
- python .\scripts\build_sample_catalog.py
582
- ```
583
-
584
- Sadə prompt üçün explain-plan:
585
-
586
- ```powershell
587
- python .\scripts\generate_pkt.py --explain-plan "3 dene switch ve 6 komputer"
588
- ```
589
-
590
- Campus prompt üçün donor-prune explain-plan:
591
-
592
- ```powershell
593
- python .\scripts\generate_pkt.py --explain-plan "6 şöbəli şəbəkə qur, hər şöbədə 1 switch, 1 AP, 1 printer, 2 PC, 2 tablet olsun, router-on-a-stick olsun, DHCP routerdən verilsin, management VLAN və telnet olsun"
594
- ```
595
-
596
- `.pkt` yaratmaq:
597
-
598
- ```powershell
599
- python .\scripts\generate_pkt.py --prompt "6 şöbəli şəbəkə qur, hər şöbədə 1 switch, 1 AP, 1 printer, 2 PC, 2 tablet olsun, router-on-a-stick olsun, DHCP routerdən verilsin, management VLAN və telnet olsun" --output .\output\campus.pkt --xml-out .\output\campus.xml
600
- ```
601
-
602
- Mövcud `.pkt` haqqında inventory çıxarmaq:
603
-
604
- ```powershell
605
- python .\scripts\generate_pkt.py --inventory .\input\lab.pkt
606
- ```
607
-
608
- `.pkt` decode etmək:
609
-
610
- ```powershell
611
- python .\scripts\generate_pkt.py --decode .\output\campus.pkt --xml-out .\output\campus.xml
612
- ```
613
-
614
- ### Tələblər
615
-
616
- - Windows
617
- - lokalda quraşdırılmış Cisco Packet Tracer 9.x
618
- - lokal Cisco Packet Tracer sample save-ləri
619
- - lokal Packet Tracer 9.x donor labı
620
- - Python runtime ilə uyğun lokal Twofish bridge
621
-
622
- Python setup:
623
-
624
- ```powershell
625
- powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 -Dev
626
- ```
627
-
628
- ### Twofish bridge
629
-
630
- Bu public repo default olaraq prebuilt Twofish binary ilə gəlmir.
631
-
632
- Bu qəsdəndir:
633
-
634
- - machine-specific binary paylaşılmır
635
- - unsigned lokal artefakt təsadüfən publish olunmur
636
- - private path və build izi paylaşılmır
637
-
638
- Lokal setup üçün `scripts/vendor/README.md` faylına bax.
639
-
640
- ### Tez-tez rast gəlinən xətalar
641
-
642
- - `PACKET_TRACER_COMPAT_DONOR set but missing`
643
- - donor üçün verilmiş yol mövcud deyil
644
- - ya yolu düzəlt, ya da dəyişəni sil ki, repo donor auto-detect etsin
645
- - `PACKET_TRACER_COMPAT_DONOR_VERSION version_mismatch`
646
- - donor faylı var, amma `9.0.0.0810` deyil
647
- - problemi `5.3.0.0011`-ə düşməklə həll etmə
648
- - `TWOFISH_LOAD_STATUS missing`
649
- - lokal bridge tapılmadı
650
- - `_twofish.cp314-win_amd64.pyd` faylını `scripts/vendor/twofish.py` yanına qoy və ya `PKT_TWOFISH_LIBRARY` göstər
651
- - `PYTHON_SUPPORT_STATUS unsupported`
652
- - runtime Python `3.14.x` deyil
653
- - Python 3.14 qur və `--doctor` yoxlamasını yenidən işlə
654
-
655
- ### Screenshot
656
-
657
- Cisco Packet Tracer-də açılmış generated campus topology:
658
-
659
- ![Packet Tracer topology](docs/screenshots/packet-tracer-topology-cropped.png)
660
-
661
- ### Təhlükəsizlik və məxfilik
662
-
663
- Repo lokal private məlumatların təsadüfən paylaşılmaması üçün hazırlanıb:
664
-
665
- - hardcoded donor path commit olunmur
666
- - `C:\Users\<name>\...` donor path config-ə yazılmır
667
- - generated `.pkt` və `.xml` faylları gitignore-dadır
668
- - Python cache faylları gitignore-dadır
669
- - Twofish bridge binary-ləri gitignore-dadır
670
-
671
- Public paylaşmazdan əvvəl bunları yoxla:
672
-
673
- - `PACKET_TRACER_COMPAT_DONOR` yalnız sənin lokal env-ində olsun
674
- - paylaşmaq istəmədiyin generated lab-ları commit etmə
675
- - build etdiyin bridge binary-ni audit etməmisənsə commit etmə
676
-
677
- ### Cari limitlər
678
-
679
- - yalnız Packet Tracer 9.x
680
- - Windows-first workflow
681
- - donor-prune generate donor capacity ilə məhduddur
682
- - xarici lab-lar donor kimi istifadə olunmur
683
- - bundled template coverage qəsdən limitlidir
684
-
685
- ### Lisenziya
686
-
687
- Bu layihə MIT License ilə paylaşılır.
308
+ This project is licensed under the MIT License.