packet-tracer-skill 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/CITATION.cff +15 -0
- package/CODE_OF_CONDUCT.md +26 -0
- package/CONTRIBUTING.md +120 -0
- package/README.md +164 -543
- package/SECURITY.md +36 -0
- package/SKILL.md +46 -5
- package/bin/packet-tracer-skill.js +503 -7
- package/docs/curated-donor-registry.md +51 -0
- package/docs/discovery-keywords.md +55 -0
- package/docs/github-discussions-setup.md +34 -0
- package/docs/github-metadata.md +33 -0
- package/docs/hero-demo-plan.md +42 -0
- package/docs/publish-preview-roadmap.md +31 -0
- package/docs/release-checklist.md +60 -0
- package/docs/release-notes-0.2.0.md +25 -0
- package/docs/runtime-truth.md +49 -0
- package/docs/screenshots/.gitkeep +1 -0
- package/docs/screenshots/packet-tracer-topology-cropped.png +0 -0
- package/examples/README.md +72 -0
- package/examples/complex_campus_master_edit_v4.inventory.json +94 -0
- package/examples/gallery.md +39 -0
- package/examples/home_iot_cli_edit_v1.inventory.json +58 -0
- package/examples/index.json +127 -0
- package/examples/screenshots/complex_campus_master_edit_v4.png +0 -0
- package/examples/screenshots/home_iot_cli_edit_v1.png +0 -0
- package/examples/screenshots/service_heavy_cli_edit_v1.png +0 -0
- package/examples/screenshots/service_heavy_cli_edit_v1_dhcp.png +0 -0
- package/examples/screenshots/service_heavy_cli_edit_v1_dns.png +0 -0
- package/examples/screenshots/service_heavy_cli_edit_v1_ftp.png +0 -0
- package/examples/service_heavy_cli_edit_v1.inventory.json +51 -0
- package/package.json +41 -4
- package/references/curated-donor-registry.json +71 -0
- package/references/scenario-fixture-corpus.json +53 -0
- package/scripts/__pycache__/build_examples_index.cpython-314.pyc +0 -0
- package/scripts/__pycache__/build_sample_catalog.cpython-314.pyc +0 -0
- package/scripts/__pycache__/coverage_matrix.cpython-314.pyc +0 -0
- package/scripts/__pycache__/donor_diagnostics.cpython-314.pyc +0 -0
- package/scripts/__pycache__/generate_pkt.cpython-314.pyc +0 -0
- package/scripts/__pycache__/install_skill.cpython-314.pyc +0 -0
- package/scripts/__pycache__/intent_parser.cpython-314.pyc +0 -0
- package/scripts/__pycache__/packet_tracer_env.cpython-314.pyc +0 -0
- package/scripts/__pycache__/pkt_builder.cpython-314.pyc +0 -0
- package/scripts/__pycache__/pkt_codec.cpython-314.pyc +0 -0
- package/scripts/__pycache__/pkt_editor.cpython-314.pyc +0 -0
- package/scripts/__pycache__/pkt_transformer.cpython-314.pyc +0 -0
- package/scripts/__pycache__/remote_search.cpython-314.pyc +0 -0
- package/scripts/__pycache__/runtime_doctor.cpython-314.pyc +0 -0
- package/scripts/__pycache__/sample_catalog.cpython-314.pyc +0 -0
- package/scripts/__pycache__/sample_selector.cpython-314.pyc +0 -0
- package/scripts/__pycache__/twofish_diagnostics.cpython-314.pyc +0 -0
- package/scripts/__pycache__/twofish_runtime.cpython-314.pyc +0 -0
- package/scripts/__pycache__/workspace_repair.cpython-314.pyc +0 -0
- package/scripts/build_examples_index.py +314 -0
- package/scripts/coverage_matrix.py +783 -0
- package/scripts/donor_diagnostics.py +6 -3
- package/scripts/generate_pkt.py +2605 -98
- package/scripts/intent_parser.py +173 -18
- package/scripts/packet_tracer_env.py +127 -14
- package/scripts/pkt_editor.py +312 -12
- package/scripts/pkt_transformer.py +195 -9
- package/scripts/remote_search.py +169 -0
- package/scripts/runtime_doctor.py +286 -0
- package/scripts/sample_catalog.py +643 -38
- package/scripts/sample_selector.py +251 -5
- package/scripts/setup.ps1 +2 -1
- package/scripts/twofish_diagnostics.py +20 -23
- package/scripts/twofish_runtime.py +101 -0
- package/scripts/vendor/README.md +13 -1
- package/scripts/vendor/__pycache__/twofish.cpython-314.pyc +0 -0
- package/scripts/vendor/twofish.py +11 -9
- package/scripts/workspace_repair.py +69 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Discovery Keywords
|
|
2
|
+
|
|
3
|
+
## Must-Keep Clusters
|
|
4
|
+
|
|
5
|
+
### Packet Tracer Core
|
|
6
|
+
|
|
7
|
+
- `packet-tracer`
|
|
8
|
+
- `pkt`
|
|
9
|
+
- `cisco`
|
|
10
|
+
- `packet-tracer-generator`
|
|
11
|
+
- `packet-tracer-editor`
|
|
12
|
+
- `network-topology-generator`
|
|
13
|
+
|
|
14
|
+
### Networking Labs
|
|
15
|
+
|
|
16
|
+
- `vlan`
|
|
17
|
+
- `dhcp`
|
|
18
|
+
- `dns`
|
|
19
|
+
- `acl`
|
|
20
|
+
- `nat`
|
|
21
|
+
- `router-on-a-stick`
|
|
22
|
+
- `telnet`
|
|
23
|
+
- `wireless`
|
|
24
|
+
- `ccna`
|
|
25
|
+
- `ccnp`
|
|
26
|
+
|
|
27
|
+
### AI / Natural Language
|
|
28
|
+
|
|
29
|
+
- `ai-skill`
|
|
30
|
+
- `llm-skill`
|
|
31
|
+
- `natural-language`
|
|
32
|
+
- `prompt-to-topology`
|
|
33
|
+
- `network-automation`
|
|
34
|
+
- `network-lab-generator`
|
|
35
|
+
|
|
36
|
+
### Host Ecosystem
|
|
37
|
+
|
|
38
|
+
- `codex`
|
|
39
|
+
- `cursor`
|
|
40
|
+
- `claude`
|
|
41
|
+
- `gemini`
|
|
42
|
+
- `github-copilot-skill`
|
|
43
|
+
- `npx`
|
|
44
|
+
|
|
45
|
+
## Candidate-To-Prune-Later
|
|
46
|
+
|
|
47
|
+
Do not remove these yet, but review them after real publish and search feedback:
|
|
48
|
+
|
|
49
|
+
- broad generic terms that add little host or networking intent
|
|
50
|
+
- duplicate phrases that do not add new discovery surface
|
|
51
|
+
|
|
52
|
+
Current policy:
|
|
53
|
+
|
|
54
|
+
- keep the wider keyword set through publish-preview
|
|
55
|
+
- use README headings, GitHub Topics, example titles, and article titles to reinforce the same vocabulary
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# GitHub Discussions Setup
|
|
2
|
+
|
|
3
|
+
Recommended categories:
|
|
4
|
+
|
|
5
|
+
- `Show and Tell`
|
|
6
|
+
- `Q&A`
|
|
7
|
+
- `Donor Requests`
|
|
8
|
+
- `Capability Roadmap`
|
|
9
|
+
|
|
10
|
+
Recommended purpose:
|
|
11
|
+
|
|
12
|
+
- `Show and Tell`
|
|
13
|
+
Real example screenshots, labs, and outcomes.
|
|
14
|
+
- `Q&A`
|
|
15
|
+
Usage help, runtime doctor interpretation, install guidance.
|
|
16
|
+
- `Donor Requests`
|
|
17
|
+
Requests for new donor families or curated donor promotion.
|
|
18
|
+
- `Capability Roadmap`
|
|
19
|
+
Discussion of scenario families, parity gaps, and future coverage.
|
|
20
|
+
|
|
21
|
+
Recommended repository About topics:
|
|
22
|
+
|
|
23
|
+
- `packet-tracer`
|
|
24
|
+
- `cisco`
|
|
25
|
+
- `networking`
|
|
26
|
+
- `network-lab`
|
|
27
|
+
- `natural-language`
|
|
28
|
+
- `ai-skill`
|
|
29
|
+
- `codex`
|
|
30
|
+
- `cursor`
|
|
31
|
+
- `claude`
|
|
32
|
+
- `gemini`
|
|
33
|
+
|
|
34
|
+
Keep repository Topics, README headings, and npm keywords aligned to the same vocabulary clusters.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# GitHub Metadata
|
|
2
|
+
|
|
3
|
+
## Final About Text
|
|
4
|
+
|
|
5
|
+
Donor-backed Cisco Packet Tracer 9.x skill for natural-language planning, safe-open `.pkt` generation, editing, parity reporting, and runtime diagnostics.
|
|
6
|
+
|
|
7
|
+
## Final Topics
|
|
8
|
+
|
|
9
|
+
- `packet-tracer`
|
|
10
|
+
- `cisco`
|
|
11
|
+
- `networking`
|
|
12
|
+
- `network-lab`
|
|
13
|
+
- `natural-language`
|
|
14
|
+
- `ai-skill`
|
|
15
|
+
- `codex`
|
|
16
|
+
- `cursor`
|
|
17
|
+
- `claude`
|
|
18
|
+
- `gemini`
|
|
19
|
+
|
|
20
|
+
## Final Pinned Visual
|
|
21
|
+
|
|
22
|
+
Use the complex campus Packet Tracer screenshot as the first public visual until a dedicated hero demo GIF is ready.
|
|
23
|
+
|
|
24
|
+
Pinned screenshot:
|
|
25
|
+
|
|
26
|
+
- `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
27
|
+
|
|
28
|
+
## Public Message Guardrails
|
|
29
|
+
|
|
30
|
+
- say `donor-backed`, `open-first`, `scenario-aware`, and `Windows-first runtime`
|
|
31
|
+
- say `validated with external bridge override` when referring to strict runtime validation
|
|
32
|
+
- do not say the repo is self-contained runtime-ready unless doctor semantics change
|
|
33
|
+
- keep README, release notes, and GitHub About text aligned with the same wording
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Hero Demo Plan
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Prepare one conservative hero demo flow for the `0.2.0` public preview surface without implying self-contained runtime readiness.
|
|
6
|
+
|
|
7
|
+
## Prompt
|
|
8
|
+
|
|
9
|
+
Use this prompt:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
6 department campus with router-on-a-stick, VLAN, DHCP, management VLAN, Telnet, ACL
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## CLI Flow
|
|
16
|
+
|
|
17
|
+
Run in this order:
|
|
18
|
+
|
|
19
|
+
```powershell
|
|
20
|
+
python .\scripts\generate_pkt.py --explain-plan "6 department campus with router-on-a-stick, VLAN, DHCP, management VLAN, Telnet, ACL"
|
|
21
|
+
python .\scripts\generate_pkt.py --parity-report "6 department campus with router-on-a-stick, VLAN, DHCP, management VLAN, Telnet, ACL"
|
|
22
|
+
python .\scripts\runtime_doctor.py
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Visual
|
|
26
|
+
|
|
27
|
+
- pinned image: `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
28
|
+
- reuse the complex campus topology screenshot as the hero visual until a dedicated GIF is produced
|
|
29
|
+
|
|
30
|
+
## Claims To Make
|
|
31
|
+
|
|
32
|
+
- donor-backed
|
|
33
|
+
- open-first
|
|
34
|
+
- scenario-aware
|
|
35
|
+
- Windows-first runtime
|
|
36
|
+
- validated with external bridge override
|
|
37
|
+
|
|
38
|
+
## Claims Not To Make
|
|
39
|
+
|
|
40
|
+
- do not say the repo is self-contained runtime-ready
|
|
41
|
+
- do not claim full synthetic generate for WAN/security coverage
|
|
42
|
+
- do not imply unsupported or acceptance-gated mutations are generated anyway
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Publish-Preview Roadmap
|
|
2
|
+
|
|
3
|
+
## Step A: Internal Freeze
|
|
4
|
+
|
|
5
|
+
- completed
|
|
6
|
+
- release surface is commit-ready
|
|
7
|
+
- checklist dry run passes
|
|
8
|
+
- changelog reflects the current batch
|
|
9
|
+
- docs and runtime wording match actual behavior
|
|
10
|
+
- template fallback assets are checked in and release-surface tests protect them
|
|
11
|
+
|
|
12
|
+
## Step B: Public `0.2.x` Publish-Preview
|
|
13
|
+
|
|
14
|
+
- `package.json` is versioned at `0.2.0`
|
|
15
|
+
- release notes draft is ready: `docs/release-notes-0.2.0.md`
|
|
16
|
+
- hero visual is locked to `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
17
|
+
- hero demo execution plan is ready: `docs/hero-demo-plan.md`
|
|
18
|
+
- GitHub About/Topics text is finalized in `docs/github-metadata.md`
|
|
19
|
+
- npm publish checklist is complete and conservative runtime wording is preserved
|
|
20
|
+
- final publish batch should only do:
|
|
21
|
+
- npm publish
|
|
22
|
+
- GitHub release creation
|
|
23
|
+
- About/Topics update in GitHub UI
|
|
24
|
+
- Discussions opening and release announcement
|
|
25
|
+
|
|
26
|
+
## Step C: `1.0.0` Preparation
|
|
27
|
+
|
|
28
|
+
- at least one populated curated donor path is actively used in practice
|
|
29
|
+
- runtime messaging remains conservative and stable
|
|
30
|
+
- one richer example family or improved `wan_security_edge` reporting is added
|
|
31
|
+
- publish-preview feedback is folded back into docs and trust surface
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Release Checklist
|
|
2
|
+
|
|
3
|
+
Target release surface: `0.2.0` conservative public preview prep.
|
|
4
|
+
|
|
5
|
+
## Product Contract
|
|
6
|
+
|
|
7
|
+
- `scenario_generate_decision`, `scenario_acceptance_summary`, `scenario_matrix_row`, `capability_parity`, and runtime doctor wording are internally consistent
|
|
8
|
+
- curated donor registry and scenario fixture corpus reflect current behavior
|
|
9
|
+
- README claims do not exceed tested behavior
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
Run:
|
|
14
|
+
|
|
15
|
+
```powershell
|
|
16
|
+
python .\scripts\build_examples_index.py
|
|
17
|
+
python -m pytest tests -q
|
|
18
|
+
node --check .\bin\packet-tracer-skill.js
|
|
19
|
+
python .\scripts\generate_pkt.py --parity-report "campus with VLAN DHCP ACL"
|
|
20
|
+
python .\scripts\runtime_doctor.py
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Package Audit
|
|
24
|
+
|
|
25
|
+
- `package.json` description matches current product scope
|
|
26
|
+
- keyword clusters cover Packet Tracer, networking labs, AI/natural language, and host ecosystems
|
|
27
|
+
- `files` includes docs and runtime assets needed by consumers
|
|
28
|
+
- version bump matches semver intent
|
|
29
|
+
|
|
30
|
+
## Public Artifacts
|
|
31
|
+
|
|
32
|
+
- raw `.pkt` binaries are not committed
|
|
33
|
+
- examples index and gallery were rebuilt
|
|
34
|
+
- screenshots are intentional and non-sensitive
|
|
35
|
+
- changelog entry is updated for `0.2.0`
|
|
36
|
+
- release notes draft exists: `docs/release-notes-0.2.0.md`
|
|
37
|
+
- hero demo plan exists: `docs/hero-demo-plan.md`
|
|
38
|
+
- hero visual is selected: `examples/screenshots/complex_campus_master_edit_v4.png`
|
|
39
|
+
- runtime truth docs match current `runtime_grade` and `bridge_resolution` semantics
|
|
40
|
+
- curated donor registry entries are reviewed for promotion status and provenance
|
|
41
|
+
|
|
42
|
+
## GitHub Surface
|
|
43
|
+
|
|
44
|
+
- CI workflow is green
|
|
45
|
+
- issue templates are present
|
|
46
|
+
- contributing and security docs exist
|
|
47
|
+
- citation metadata exists
|
|
48
|
+
- About/Topics are ready to be updated in GitHub UI
|
|
49
|
+
|
|
50
|
+
## Publish Gate
|
|
51
|
+
|
|
52
|
+
Only publish when:
|
|
53
|
+
|
|
54
|
+
- CI is green
|
|
55
|
+
- README renders cleanly
|
|
56
|
+
- `package.json` version is final for the publish-preview batch
|
|
57
|
+
- doctor wording matches current runtime reality
|
|
58
|
+
- no accidental local paths leaked into tracked files
|
|
59
|
+
- GitHub metadata doc is final and matches README wording
|
|
60
|
+
- hero visual and release notes are ready for direct reuse
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `packet-tracer-skill` `0.2.0` Release Notes Draft
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`0.2.0` is a conservative public preview prep release for `packet-tracer-skill`. It stabilizes the public release surface around donor-backed planning, open-first generation rules, scenario-aware reporting, and Windows-first runtime truth.
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
- donor-backed and scenario-aware Packet Tracer 9.x workflow
|
|
10
|
+
- explicit product surfaces: `--explain-plan`, `--compare-scenarios`, `--parity-report`, `--doctor`
|
|
11
|
+
- curated donor registry and scenario fixture corpus are checked-in truth sources
|
|
12
|
+
- known working scenario set examples are positioned as public proof artifacts
|
|
13
|
+
- release/readme/docs wording is aligned to runtime and donor reality
|
|
14
|
+
|
|
15
|
+
## Runtime Notes
|
|
16
|
+
|
|
17
|
+
- real `.pkt` runtime remains Windows-first
|
|
18
|
+
- strict validation is currently performed with an external bridge override when repo-local bridge assets are not bundled
|
|
19
|
+
- public docs intentionally preserve the distinction between repo-local readiness and external bridge fallback
|
|
20
|
+
|
|
21
|
+
## Public Preview Intent
|
|
22
|
+
|
|
23
|
+
- this release prepares the repo for npm publish and GitHub release
|
|
24
|
+
- it does not change the product contract to imply `1.0.0` stability
|
|
25
|
+
- publish should happen only after the short follow-up batch that applies the prepared metadata and release steps
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Runtime Truth
|
|
2
|
+
|
|
3
|
+
## Why This Exists
|
|
4
|
+
|
|
5
|
+
This repo makes a strict distinction between:
|
|
6
|
+
|
|
7
|
+
- passing tests with an external bridge override
|
|
8
|
+
- being self-contained and repo-local runtime ready
|
|
9
|
+
|
|
10
|
+
That distinction is part of the public product contract.
|
|
11
|
+
|
|
12
|
+
## Runtime Grades
|
|
13
|
+
|
|
14
|
+
- `ready`
|
|
15
|
+
Repo-local runtime pieces are available and the doctor sees a complete decode/edit/generate path.
|
|
16
|
+
- `partially_ready`
|
|
17
|
+
Some operations work, but strict `.pkt` generation is still blocked.
|
|
18
|
+
- `blocked`
|
|
19
|
+
Required donor, bridge, or Packet Tracer runtime pieces are missing.
|
|
20
|
+
|
|
21
|
+
## Bridge Resolution
|
|
22
|
+
|
|
23
|
+
- `repo_local`
|
|
24
|
+
A repo-local vendor bridge is resolved.
|
|
25
|
+
- `external_env`
|
|
26
|
+
A bridge is only available through an external environment path.
|
|
27
|
+
- `missing`
|
|
28
|
+
No usable bridge is resolved.
|
|
29
|
+
|
|
30
|
+
## Publish-Preview Policy
|
|
31
|
+
|
|
32
|
+
For `0.2.x` publish-preview:
|
|
33
|
+
|
|
34
|
+
- external bridge assisted testing is acceptable
|
|
35
|
+
- docs must say this explicitly
|
|
36
|
+
- README must not imply the repo is self-contained if it is not
|
|
37
|
+
|
|
38
|
+
For `1.0.0`:
|
|
39
|
+
|
|
40
|
+
- either repo-local readiness improves
|
|
41
|
+
- or the Windows-first external-bridge-assisted contract remains explicit and stable
|
|
42
|
+
|
|
43
|
+
## Required Messaging
|
|
44
|
+
|
|
45
|
+
If tests pass only with an external bridge:
|
|
46
|
+
|
|
47
|
+
- do not say "runtime ready" without qualification
|
|
48
|
+
- do say "validated with external bridge override"
|
|
49
|
+
- do preserve the difference between repo-local readiness and external fallback
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
Binary file
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
## Known Working Scenario Set
|
|
2
|
+
|
|
3
|
+
This repo keeps text-based example artifacts under `examples/` and treats them as a known working scenario set, not just a screenshot folder.
|
|
4
|
+
|
|
5
|
+
For the `0.2.0` launch-prep surface, the canonical public set is:
|
|
6
|
+
|
|
7
|
+
- `complex_campus_master_edit_v4`
|
|
8
|
+
- `home_iot_cli_edit_v1`
|
|
9
|
+
- `service_heavy_cli_edit_v1`
|
|
10
|
+
|
|
11
|
+
Hero visual:
|
|
12
|
+
|
|
13
|
+
- `screenshots/complex_campus_master_edit_v4.png`
|
|
14
|
+
|
|
15
|
+
Policy:
|
|
16
|
+
- generated `.pkt` and `.xml` files stay gitignored
|
|
17
|
+
- public examples should be sanitized JSON or markdown summaries
|
|
18
|
+
- if you want to publish a lab sample, prefer `--inventory --inventory-out` and commit the resulting JSON
|
|
19
|
+
- real Packet Tracer screenshots can be committed under `examples/screenshots/`
|
|
20
|
+
- examples may have one primary screenshot plus additional detail screenshots
|
|
21
|
+
|
|
22
|
+
Example command:
|
|
23
|
+
|
|
24
|
+
```powershell
|
|
25
|
+
python .\scripts\generate_pkt.py --inventory .\output\complex_campus_master_edit_v4.pkt --inventory-capabilities --inventory-out .\examples\complex_campus_master_edit_v4.inventory.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Current curated example:
|
|
29
|
+
- `complex_campus_master_edit_v4.inventory.json`
|
|
30
|
+
Donor-backed complex campus edit showing management VLAN, Telnet, ACL, server services, and wireless updates without publishing the binary `.pkt` itself.
|
|
31
|
+
- `screenshots/complex_campus_master_edit_v4.png`
|
|
32
|
+
Visual snapshot of the same lab opened inside Cisco Packet Tracer.
|
|
33
|
+
|
|
34
|
+
Additional curated examples:
|
|
35
|
+
- `home_iot_cli_edit_v1.inventory.json`
|
|
36
|
+
Home gateway and IoT registration example focused on gateway-backed device onboarding.
|
|
37
|
+
- `screenshots/home_iot_cli_edit_v1.png`
|
|
38
|
+
Topology snapshot for the Home IoT example.
|
|
39
|
+
- `service_heavy_cli_edit_v1.inventory.json`
|
|
40
|
+
Service-heavy server example focused on DNS, DHCP, FTP, email, syslog, AAA, and related service metadata.
|
|
41
|
+
- `screenshots/service_heavy_cli_edit_v1.png`
|
|
42
|
+
Topology snapshot for the Service Heavy example.
|
|
43
|
+
- `screenshots/service_heavy_cli_edit_v1_*.png`
|
|
44
|
+
Additional service detail screenshots for DHCP, DNS, and FTP views.
|
|
45
|
+
- `index.json`
|
|
46
|
+
Lightweight gallery index for curated example artifacts.
|
|
47
|
+
|
|
48
|
+
Rebuild the gallery index:
|
|
49
|
+
|
|
50
|
+
```powershell
|
|
51
|
+
python .\scripts\build_examples_index.py
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Generated outputs:
|
|
55
|
+
- `index.json`
|
|
56
|
+
Machine-readable curated example index.
|
|
57
|
+
- `gallery.md`
|
|
58
|
+
Human-readable markdown gallery generated from the same source, positioned as the known working scenario set.
|
|
59
|
+
- `previews/*.svg`
|
|
60
|
+
Generated fallback preview images for examples that do not yet have real Packet Tracer screenshots.
|
|
61
|
+
|
|
62
|
+
Gallery families:
|
|
63
|
+
- `campus`
|
|
64
|
+
VLAN, management, ACL, server services, and wireless edits.
|
|
65
|
+
- `home_iot`
|
|
66
|
+
Home gateway, IoT things, and registration-focused examples.
|
|
67
|
+
- `service_heavy`
|
|
68
|
+
Server-centric service labs with richer metadata.
|
|
69
|
+
|
|
70
|
+
Launch-prep references:
|
|
71
|
+
- `..\docs\hero-demo-plan.md`
|
|
72
|
+
- `..\docs\release-notes-0.2.0.md`
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"example_name": "complex_campus_master_edit_v4",
|
|
3
|
+
"source_mode": "donor-backed edit",
|
|
4
|
+
"scenario_family": "campus",
|
|
5
|
+
"public_repo_policy": {
|
|
6
|
+
"commit_pkt_binary": false,
|
|
7
|
+
"commit_inventory_json": true
|
|
8
|
+
},
|
|
9
|
+
"artifact_paths": {
|
|
10
|
+
"screenshot": "examples/screenshots/complex_campus_master_edit_v4.png",
|
|
11
|
+
"screenshots": [
|
|
12
|
+
"examples/screenshots/complex_campus_master_edit_v4.png"
|
|
13
|
+
],
|
|
14
|
+
"inventory_json": "examples/complex_campus_master_edit_v4.inventory.json"
|
|
15
|
+
},
|
|
16
|
+
"topology_summary": {
|
|
17
|
+
"network_style": "campus",
|
|
18
|
+
"core_router": "Router0",
|
|
19
|
+
"switches_with_management": [
|
|
20
|
+
"Switch Management",
|
|
21
|
+
"Switch Emeliyyat",
|
|
22
|
+
"Switch IT",
|
|
23
|
+
"Switch Maliyye",
|
|
24
|
+
"Switch Muhendislik",
|
|
25
|
+
"Switch Security"
|
|
26
|
+
],
|
|
27
|
+
"wireless_routers": [
|
|
28
|
+
"Wireless Router0",
|
|
29
|
+
"Wireless Router1",
|
|
30
|
+
"Wireless Router2",
|
|
31
|
+
"Wireless Router3",
|
|
32
|
+
"Wireless Router4"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"management_summary": {
|
|
36
|
+
"management_vlan": 99,
|
|
37
|
+
"default_gateway": "192.168.99.1",
|
|
38
|
+
"telnet_enabled_switches": [
|
|
39
|
+
"Switch Management",
|
|
40
|
+
"Switch Emeliyyat",
|
|
41
|
+
"Switch IT",
|
|
42
|
+
"Switch Maliyye",
|
|
43
|
+
"Switch Muhendislik",
|
|
44
|
+
"Switch Security"
|
|
45
|
+
],
|
|
46
|
+
"username": "admin"
|
|
47
|
+
},
|
|
48
|
+
"routing_security_summary": {
|
|
49
|
+
"acl_names": {
|
|
50
|
+
"Router0": [
|
|
51
|
+
"MGMT_ONLY"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"server_service_summary": {
|
|
56
|
+
"Server0": {
|
|
57
|
+
"services": [
|
|
58
|
+
"dns_server",
|
|
59
|
+
"email_server",
|
|
60
|
+
"ftp_server",
|
|
61
|
+
"http_server",
|
|
62
|
+
"https_server",
|
|
63
|
+
"ntp_server",
|
|
64
|
+
"syslog_server",
|
|
65
|
+
"tftp_server"
|
|
66
|
+
],
|
|
67
|
+
"email_domain": "campus.local"
|
|
68
|
+
},
|
|
69
|
+
"Server1": {
|
|
70
|
+
"services": [
|
|
71
|
+
"acs_server",
|
|
72
|
+
"email_server",
|
|
73
|
+
"ftp_server",
|
|
74
|
+
"http_server",
|
|
75
|
+
"https_server",
|
|
76
|
+
"ntp_server",
|
|
77
|
+
"syslog_server",
|
|
78
|
+
"tftp_server"
|
|
79
|
+
],
|
|
80
|
+
"aaa_auth_port": "1812"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"wireless_summary": {
|
|
84
|
+
"Wireless Router0": "OPS_WIFI",
|
|
85
|
+
"Wireless Router1": "IT_WIFI",
|
|
86
|
+
"Wireless Router2": "FIN_WIFI",
|
|
87
|
+
"Wireless Router3": "ENG_WIFI",
|
|
88
|
+
"Wireless Router4": "SEC_WIFI"
|
|
89
|
+
},
|
|
90
|
+
"verification_status": {
|
|
91
|
+
"inventory_roundtrip_verified": true,
|
|
92
|
+
"full_pytest_passed": true
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
## Known Working Scenario Set
|
|
2
|
+
|
|
3
|
+
These examples are public, text-first proof artifacts derived from donor-backed workflows and aligned with the scenario fixture corpus.
|
|
4
|
+
|
|
5
|
+
`0.2.0` canonical public set:
|
|
6
|
+
|
|
7
|
+
- `campus`
|
|
8
|
+
- `home_iot`
|
|
9
|
+
- `service_heavy`
|
|
10
|
+
|
|
11
|
+
Hero visual:
|
|
12
|
+
|
|
13
|
+
- [complex campus screenshot](screenshots/complex_campus_master_edit_v4.png)
|
|
14
|
+
|
|
15
|
+
| Title | Family | Capabilities | Image | Inventory |
|
|
16
|
+
| --- | --- | --- | --- | --- |
|
|
17
|
+
| Complex Campus | `campus` | management_vlan, telnet, acl, server_dns, server_email, server_aaa, wireless_mutation | [screenshot](screenshots/complex_campus_master_edit_v4.png) | [manifest](complex_campus_master_edit_v4.inventory.json) |
|
|
18
|
+
| | | Management VLAN, Telnet, ACL, DNS, email, AAA, and multi-SSID wireless campus edit. | | |
|
|
19
|
+
| | | `known_working_example | donor=donor-backed | capabilities=management_vlan, telnet, acl` | | |
|
|
20
|
+
| | | `campus_core_complex | known_working_example | family=campus` | | |
|
|
21
|
+
| | | `management_vlan=generate-ready, telnet=generate-ready, acl=generate-ready` | | |
|
|
22
|
+
| | | `decision=known_working_example | donor_origin=donor-backed` | | |
|
|
23
|
+
| | | `runtime=donor-backed example artifact` | | |
|
|
24
|
+
| Home IoT | `home_iot` | iot, iot_registration, wireless_ap | [screenshot](screenshots/home_iot_cli_edit_v1.png) | [manifest](home_iot_cli_edit_v1.inventory.json) |
|
|
25
|
+
| | | Home gateway and IoT device onboarding with gateway-backed registration state. | | |
|
|
26
|
+
| | | `known_working_example | donor=donor-backed | capabilities=iot, iot_registration, wireless_ap` | | |
|
|
27
|
+
| | | `home_iot_complex | known_working_example | family=home_iot` | | |
|
|
28
|
+
| | | `iot=generate-ready, iot_registration=generate-ready, wireless_ap=generate-ready` | | |
|
|
29
|
+
| | | `decision=known_working_example | donor_origin=donor-backed` | | |
|
|
30
|
+
| | | `runtime=donor-backed example artifact` | | |
|
|
31
|
+
| Service Heavy | `service_heavy` | server_dns, server_dhcp, server_ftp, server_email, server_syslog, server_aaa | [screenshot](screenshots/service_heavy_cli_edit_v1.png) | [manifest](service_heavy_cli_edit_v1.inventory.json) |
|
|
32
|
+
| | | Service-rich server lab with DNS, DHCP, FTP, email, syslog, AAA, and detailed service metadata. | | |
|
|
33
|
+
| | | `known_working_example | donor=donor-backed | capabilities=server_dns, server_dhcp, server_ftp` | | |
|
|
34
|
+
| | | `service_heavy_complex | known_working_example | family=service_heavy` | | |
|
|
35
|
+
| | | `server_dns=generate-ready, server_dhcp=generate-ready, server_ftp=generate-ready` | | |
|
|
36
|
+
| | | `decision=known_working_example | donor_origin=donor-backed` | | |
|
|
37
|
+
| | | `runtime=donor-backed example artifact` | | |
|
|
38
|
+
| | | extra visuals: [detail 1](screenshots/service_heavy_cli_edit_v1_dhcp.png); [detail 2](screenshots/service_heavy_cli_edit_v1_dns.png); [detail 3](screenshots/service_heavy_cli_edit_v1_ftp.png) | | |
|
|
39
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"example_name": "home_iot_cli_edit_v1",
|
|
3
|
+
"source_mode": "donor-backed edit",
|
|
4
|
+
"scenario_family": "home_iot",
|
|
5
|
+
"public_repo_policy": {
|
|
6
|
+
"commit_pkt_binary": false,
|
|
7
|
+
"commit_inventory_json": true,
|
|
8
|
+
"commit_screenshot": false
|
|
9
|
+
},
|
|
10
|
+
"artifact_paths": {
|
|
11
|
+
"inventory_json": "examples/home_iot_cli_edit_v1.inventory.json",
|
|
12
|
+
"screenshot": "examples/screenshots/home_iot_cli_edit_v1.png",
|
|
13
|
+
"screenshots": [
|
|
14
|
+
"examples/screenshots/home_iot_cli_edit_v1.png"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"topology_summary": {
|
|
18
|
+
"gateway": "Home Gateway0",
|
|
19
|
+
"iot_things": [
|
|
20
|
+
"door0",
|
|
21
|
+
"door1"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"wireless_summary": {
|
|
25
|
+
"Home Gateway0": "HomeGateway",
|
|
26
|
+
"door0": "HomeGateway",
|
|
27
|
+
"door1": "HomeGateway"
|
|
28
|
+
},
|
|
29
|
+
"iot_summary": {
|
|
30
|
+
"Home Gateway0": {
|
|
31
|
+
"role": "gateway",
|
|
32
|
+
"type": "HomeGateway",
|
|
33
|
+
"http_enabled": true
|
|
34
|
+
},
|
|
35
|
+
"door0": {
|
|
36
|
+
"role": "thing",
|
|
37
|
+
"type": "MCUComponent",
|
|
38
|
+
"client_mode": "LAN_SERVER",
|
|
39
|
+
"server_address": "192.168.25.1",
|
|
40
|
+
"username": "admin"
|
|
41
|
+
},
|
|
42
|
+
"door1": {
|
|
43
|
+
"role": "thing",
|
|
44
|
+
"type": "MCUComponent",
|
|
45
|
+
"client_mode": "LAN_SERVER"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"service_summary": {
|
|
49
|
+
"Home Gateway0": [
|
|
50
|
+
"http_server",
|
|
51
|
+
"dhcp_server"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"verification_status": {
|
|
55
|
+
"inventory_roundtrip_verified": true,
|
|
56
|
+
"full_pytest_passed": true
|
|
57
|
+
}
|
|
58
|
+
}
|