packet-tracer-skill 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +424 -73
  2. package/README.md +557 -442
  3. package/SKILL.md +337 -262
  4. package/bin/packet-tracer-skill.js +29 -2
  5. package/docs/github-launch-ops-0.2.3.md +37 -0
  6. package/docs/github-metadata.md +6 -4
  7. package/docs/hero-demo-plan.md +1 -1
  8. package/docs/home-iot-donor-proof.md +4 -4
  9. package/docs/l2-security-qos-proof.md +1 -1
  10. package/docs/packet-tracer-feature-gap-atlas.md +4 -4
  11. package/docs/post-launch-follow-up.md +9 -5
  12. package/docs/proof-readiness-dashboard.md +69 -0
  13. package/docs/publish-preview-roadmap.md +6 -5
  14. package/docs/release-checklist.md +17 -8
  15. package/docs/release-notes-0.2.4.md +20 -0
  16. package/docs/runtime-truth.md +33 -8
  17. package/docs/security-edge-deepening-proof.md +1 -1
  18. package/examples/README.md +98 -69
  19. package/examples/complex_campus_master_edit_v4.inventory.json +12 -2
  20. package/examples/gallery.md +94 -6
  21. package/examples/home_iot_cli_edit_v1.inventory.json +11 -2
  22. package/examples/index.json +932 -4
  23. package/examples/local-sample-evidence.json +24 -0
  24. package/examples/proof-cards.json +117 -0
  25. package/examples/service_heavy_cli_edit_v1.inventory.json +11 -2
  26. package/package.json +60 -53
  27. package/pytest.ini +9 -0
  28. package/references/packettracer-sample-catalog.json +45287 -4525
  29. package/references/packettracer-sample-catalog.md +599 -259
  30. package/references/proof-readiness-candidates.json +352 -0
  31. package/scripts/build_examples_index.py +228 -35
  32. package/scripts/build_sample_catalog.py +24 -44
  33. package/scripts/corpus_runner.py +430 -0
  34. package/scripts/coverage_matrix.py +1842 -1812
  35. package/scripts/donor_cache.py +354 -0
  36. package/scripts/donor_diagnostics.py +3 -1
  37. package/scripts/generate_pkt.py +8762 -4228
  38. package/scripts/intent_parser.py +2242 -1657
  39. package/scripts/local_donors.py +340 -0
  40. package/scripts/packet_tracer_env.py +846 -391
  41. package/scripts/pkt_annotate.py +218 -0
  42. package/scripts/pkt_codec.py +420 -181
  43. package/scripts/pkt_editor.py +2405 -1703
  44. package/scripts/pkt_transformer.py +1072 -727
  45. package/scripts/pkt_verify.py +461 -0
  46. package/scripts/runtime_doctor.py +80 -29
  47. package/scripts/sample_catalog.py +1372 -1250
  48. package/scripts/twofish_diagnostics.py +48 -31
  49. package/scripts/usage_ledger.py +218 -0
  50. package/scripts/vendor/README.md +44 -37
  51. package/scripts/vendor/twofish_pure.py +321 -0
  52. package/scripts/workspace_repair.py +548 -508
  53. package/templates/pt900/donors/README.md +15 -0
@@ -1036,12 +1036,39 @@ function main() {
1036
1036
  }
1037
1037
  }
1038
1038
  printEnvExamples(runtimeDoctor);
1039
- const failed = checks.some(([, ok]) => !ok);
1039
+ // The verdict follows the checks that decide whether anything is
1040
+ // actually blocked, not "did any line print MISSING". A fresh install
1041
+ // reported `RUNTIME_GRADE ready`, `BLOCKED_OPERATIONS none` and every
1042
+ // capability ready, and then closed with "Runtime is not fully ready"
1043
+ // and exit 1 -- because `TWOFISH_SHA256` is a checksum of the optional
1044
+ // compiled bridge, which is absent by design when the vendored
1045
+ // pure-Python engine is in use. A first-time user reads that as a failed
1046
+ // install.
1047
+ const status = checkMap(checks);
1048
+ const isClear = (name) => {
1049
+ const entry = status.get(name);
1050
+ if (!entry) return true;
1051
+ const detail = (entry.detail || "").trim().toLowerCase();
1052
+ return entry.ok || detail === "" || detail === "none";
1053
+ };
1054
+ const gradeEntry = status.get("RUNTIME_GRADE");
1055
+ const grade = (gradeEntry && gradeEntry.detail ? gradeEntry.detail : "").trim();
1056
+ const failed =
1057
+ (grade !== "" && grade !== "ready") ||
1058
+ !isClear("RUNTIME_BLOCKERS") ||
1059
+ !isClear("BLOCKED_OPERATIONS");
1040
1060
  if (failed) {
1041
1061
  console.error("\nRuntime is not fully ready. Install copies are fine, but Packet Tracer generation still needs the missing items above.");
1042
1062
  process.exit(1);
1043
1063
  }
1044
- console.log("\nRuntime looks ready.");
1064
+ const informational = checks.filter(([, ok]) => !ok).map(([name]) => name);
1065
+ if (informational.length > 0) {
1066
+ console.log(
1067
+ `\nRuntime looks ready. Optional items not present: ${informational.join(", ")}.`
1068
+ );
1069
+ } else {
1070
+ console.log("\nRuntime looks ready.");
1071
+ }
1045
1072
  process.exit(0);
1046
1073
  }
1047
1074
 
@@ -0,0 +1,37 @@
1
+ # GitHub Launch Ops for `v0.2.3`
2
+
3
+ `packet-tracer-skill@0.2.3` is the current published capability release. This runbook is the active launch-ops source for the published line.
4
+
5
+ ## Release Object
6
+
7
+ 1. Ensure tag `v0.2.3` points to the publish commit.
8
+ 2. Create or verify the GitHub Release title `v0.2.3`.
9
+ 3. Use `docs/release-notes-0.2.3.md` as the release body source.
10
+ 4. Keep the hero visual as `examples/screenshots/complex_campus_master_edit_v4.png`.
11
+
12
+ ## About And Topics
13
+
14
+ Use `docs/github-metadata.md` as the current source of truth.
15
+
16
+ The public wording should say:
17
+
18
+ - donor-backed
19
+ - open-first
20
+ - scenario-aware
21
+ - Windows-first runtime
22
+ - validated with external bridge override
23
+
24
+ Do not claim repo-local self-contained runtime readiness unless `runtime_doctor` semantics change.
25
+
26
+ ## Discussions
27
+
28
+ Recommended categories:
29
+
30
+ - `Showcase`
31
+ - `Q&A`
32
+ - `Donor Requests`
33
+ - `Capability Roadmap`
34
+
35
+ ## Next Candidate
36
+
37
+ `0.2.4` is a candidate product-hardening patch for Examples Truth 2.0, proof-card discoverability, local sample evidence, and proof-readiness promotion planning. It should not be presented as published until version, tag, npm, and release notes are finalized.
@@ -27,13 +27,15 @@ Pinned screenshot:
27
27
 
28
28
  Pinned caption:
29
29
 
30
- - `donor-backed complex campus proof artifact for the 0.2.2 public preview`
30
+ - `donor-backed complex campus proof artifact for the 0.2.3 capability release`
31
31
 
32
32
  ## Release Source
33
33
 
34
- - release title: `v0.2.2`
35
- - release body source: `docs/release-notes-0.2.2.md`
36
- - launch wording source: `docs/launch-announcement-0.2.2.md`
34
+ - current published release title: `v0.2.3`
35
+ - current release body source: `docs/release-notes-0.2.3.md`
36
+ - current launch ops source: `docs/github-launch-ops-0.2.3.md`
37
+ - next candidate release notes draft: `docs/release-notes-0.2.4.md`
38
+ - historical `0.2.2` launch wording remains archived in `docs/launch-announcement-0.2.2.md`
37
39
 
38
40
  ## Discussions Categories
39
41
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Goal
4
4
 
5
- Prepare one conservative hero demo flow for the `0.2.1` public preview surface without implying self-contained runtime readiness.
5
+ Prepare one conservative hero demo flow for the current `0.2.3` capability release and the next `0.2.4` candidate surface without implying self-contained runtime readiness.
6
6
 
7
7
  ## Prompt
8
8
 
@@ -25,15 +25,15 @@ Observed Home IoT proof facts:
25
25
  - IoT rule enable/disable state
26
26
  - donor-backed wireless association
27
27
 
28
- ## Donor-Backed Generate Interpretation
28
+ ## Donor-Backed Readiness Interpretation
29
29
 
30
30
  The current product contract for Home IoT is intentionally narrow:
31
31
 
32
- - `iot_registration`, `iot_control`, and `wireless_client_association` are only considered generate-ready when a selected donor exists
32
+ - `iot_registration`, `iot_control`, and `wireless_client_association` are only considered donor-backed ready when a selected donor exists
33
33
  - the selected donor must match `IoT/home gateway` or a compatible `wireless-heavy` shape
34
34
  - the prompt must name deterministic targets such as the thing, gateway/server, client, AP/router, and SSID
35
35
 
36
- This is why the public wording uses `donor-backed constrained-generate` rather than broad `smart home generate-ready`.
36
+ This is why the public wording uses `donor-backed constrained edit/readiness` rather than broad smart-home generation.
37
37
 
38
38
  ## What This Proves
39
39
 
@@ -45,7 +45,7 @@ This is why the public wording uses `donor-backed constrained-generate` rather t
45
45
  ## What This Does Not Prove
46
46
 
47
47
  - it does not prove free-form smart-home topology generation is solved
48
- - it does not prove every prompt mentioning IoT registration is generate-ready
48
+ - it does not prove every prompt mentioning IoT registration is donor-backed ready or generation ready
49
49
  - it does not remove the need for a selected donor and deterministic target resolution
50
50
  - it does not promote WAN/security features ahead of the next wave
51
51
 
@@ -1,6 +1,6 @@
1
1
  # L2 Security and QoS Proof
2
2
 
3
- This proof records the `0.2.3` candidate L2 security/QoS edit-proven subset. It is intentionally narrow: the skill can append deterministic IOS-style switch configuration lines for explicitly named targets, but it does not synthesize a full NAC or QoS design from a broad prompt.
3
+ This proof records the published `0.2.3` L2 security/QoS edit-proven subset and the `0.2.4` candidate proof-readiness context. It is intentionally narrow: the skill can append deterministic IOS-style switch configuration lines for explicitly named targets, but it does not synthesize a full NAC or QoS design from a broad prompt.
4
4
 
5
5
  ## Explicit Commands
6
6
 
@@ -10,7 +10,7 @@ It is intentionally conservative:
10
10
  - `donor_backed_ready` requires selected-donor evidence or a validated proof-linked explicit edit gate with sample, decode, and roundtrip evidence.
11
11
  - `generate_ready` requires acceptance-backed generate behavior.
12
12
 
13
- The atlas does not claim that every Packet Tracer feature is generate-ready. It turns missing or under-modelled Packet Tracer features into an auditable backlog before any broad config mutation is opened.
13
+ The atlas does not claim that every Packet Tracer feature is `generate_ready`. It turns missing or under-modelled Packet Tracer features into an auditable backlog before any broad config mutation is opened.
14
14
 
15
15
  ## Remote Sample Evidence
16
16
 
@@ -39,7 +39,7 @@ IPv6 tunneling, ISATAP, prefix delegation, and AAAA DNS remain report-first unti
39
39
 
40
40
  ## Second Edit-Proven Wave
41
41
 
42
- The second promotion wave is `l2_security_monitoring`. The following subset is edit-proven for explicit commands, but still not broad generate-ready:
42
+ The second promotion wave is `l2_security_monitoring`. The following subset is edit-proven for explicit commands, but still not broad `generate_ready`:
43
43
 
44
44
  - DHCP snooping
45
45
  - Dynamic ARP Inspection
@@ -210,8 +210,8 @@ is evidence input, not a public curated donor registry.
210
210
  ## Current Feature Families
211
211
 
212
212
  - `ipv6_routing`: SLAAC, DHCPv6, prefix delegation, AAAA DNS, IPv6 tunneling, ISATAP, OSPFv3, EIGRP IPv6, RIPng, HSRP; OSPFv3, EIGRP IPv6, RIPng, and HSRP are donor-backed ready for explicit edit paths.
213
- - `ipv4_routing_management`: OSPFv2, EIGRP IPv4, RIPv2, static/default routes, DHCP relay, static/dynamic NAT, PAT, SSH, NTP, and syslog; explicit IOS text edits are edit-proven, but not donor-backed-ready or generate-ready.
214
- - `l2_resiliency_routing`: BGP, STP/RSTP, EtherChannel, LACP/PAgP, VTP, and DTP; explicit IOS text edits are edit-proven, but not donor-backed-ready or generate-ready.
213
+ - `ipv4_routing_management`: OSPFv2, EIGRP IPv4, RIPv2, static/default routes, DHCP relay, static/dynamic NAT, PAT, SSH, NTP, and syslog; explicit IOS text edits are edit-proven, but not donor-backed ready or `generate_ready`.
214
+ - `l2_resiliency_routing`: BGP, STP/RSTP, EtherChannel, LACP/PAgP, VTP, and DTP; explicit IOS text edits are edit-proven, but not donor-backed ready or `generate_ready`.
215
215
  - `l2_security_monitoring`: DHCP snooping, DAI, 802.1X/NAC, LLDP, REP, SNMP, NetFlow, SPAN/RSPAN, QoS, port security; dot1x is donor-backed ready for explicit IOS line edits, while QoS is edit-proven.
216
216
  - `wan_security_edge`: VPN crypto-map skeleton, IPSec transform-set, GRE tunnel basics, PPP serial encapsulation, CBAC/ZFW router IOS edits, security-edge evidence, multilayer evidence.
217
217
  - `security_edge_deepening`: ASA ACL/NAT, ASA service policy, clientless VPN, CBAC, ZFW, sniffer, IPSec variants; router ZFW is donor-backed ready, while CBAC is edit-proven.
@@ -2,10 +2,13 @@
2
2
 
3
3
  ## Immediate Follow-Up Items
4
4
 
5
- - complete GitHub launch ops from `docs/github-launch-ops-0.2.2.md`
6
- - publish one canonical donor proof artifact: `docs/campus-donor-proof.md`
7
- - publish one Home IoT donor proof artifact: `docs/home-iot-donor-proof.md`
8
- - publish one WAN/security donor proof artifact: `docs/wan-security-donor-proof.md`
5
+ - keep the published `0.2.3` surface aligned across README, npm, changelog, release notes, proof docs, and examples
6
+ - freeze the `Examples Truth 2.0` proof-card/gallery surface as the first `0.2.4` candidate batch
7
+ - use `docs/proof-readiness-dashboard.md` and `references/proof-readiness-candidates.json` as the next engineering queue
8
+ - keep canonical proof artifacts discoverable from README and examples:
9
+ - `docs/campus-donor-proof.md`
10
+ - `docs/home-iot-donor-proof.md`
11
+ - `docs/wan-security-donor-proof.md`
9
12
  - keep README, release notes, launch announcement, and GitHub metadata in sync
10
13
 
11
14
  ## Next Technical Proof Batch
@@ -24,13 +27,14 @@
24
27
  - treat runtime clarity as a product surface, not a debug detail
25
28
  - keep `what_currently_works`, `what_is_blocked`, and `best_next_fix` aligned with `doctor_summary`
26
29
 
27
- ## Trigger Conditions for `0.2.2` or the Next Minor
30
+ ## Trigger Conditions for `0.2.4`
28
31
 
29
32
  - README / npm / GitHub wording drift
30
33
  - donor proof uncovers a concrete selector mismatch worth productizing
31
34
  - runtime doctor wording becomes ambiguous again
32
35
  - examples and public proof artifacts stop matching current behavior
33
36
  - selected donor refusal becomes too generic to explain the closest rejected donor class
37
+ - proof-readiness candidates gain enough selected-donor evidence to justify promotion
34
38
 
35
39
  ## Next Integration Wave
36
40
 
@@ -0,0 +1,69 @@
1
+ # Proof Readiness Dashboard
2
+
3
+ This dashboard is the `0.2.4` candidate planning surface for moving features from `edit_proven` toward `donor_backed_ready`.
4
+
5
+ It combines three sources:
6
+
7
+ - proof cards in `examples/proof-cards.json`
8
+ - feature support ceilings in `references/packettracer-feature-atlas.json`
9
+ - local sample evidence summarized in `examples/local-sample-evidence.json`
10
+
11
+ It does not enable broad generation. The current product truth remains `generate_ready=0`.
12
+
13
+ ## Status Contract
14
+
15
+ - `report_supported`: the feature is recognized and can be reported, but no edit claim is made.
16
+ - `edit_proven`: explicit command or script-file roundtrip has evidence.
17
+ - `donor_backed_ready`: selected donor or proof-linked explicit edit path is safe for a narrow prompt-scoped workflow.
18
+ - `blocked_by_missing_decode_evidence`: sample-path evidence exists, but decode-backed evidence is not sufficient.
19
+ - `blocked_by_missing_roundtrip`: inventory or parser truth exists, but editor roundtrip proof is missing.
20
+ - `blocked_by_no_deterministic_target`: edit proof exists, but selected donor / device / interface / object resolution is not yet locked.
21
+
22
+ ## Primary Queue
23
+
24
+ Primary candidates are the highest-value next promotion targets because local evidence is strong and the edit surface is IOS text only:
25
+
26
+ - `ospfv2`
27
+ - `eigrp_ipv4`
28
+ - `ripv2`
29
+ - `static_route`
30
+ - `default_route`
31
+ - `dhcp_relay`
32
+ - `ssh_ios`
33
+ - `ntp_ios`
34
+ - `syslog_ios`
35
+
36
+ These remain `edit_proven` until selected-donor evidence and deterministic target resolution are proof-linked. Broad routing, NAT, and management design generation stays blocked.
37
+
38
+ ## Secondary Queue
39
+
40
+ Secondary candidates are L2 resiliency and BGP features with strong local sample evidence but more topology-sensitive safety requirements:
41
+
42
+ - `stp`
43
+ - `rstp`
44
+ - `etherchannel`
45
+ - `lacp`
46
+ - `pagp`
47
+ - `vtp`
48
+ - `dtp`
49
+ - `bgp`
50
+
51
+ These features should not inherit donor readiness from generic sample counts. Promotion requires explicit command shape, decode-backed sample evidence, editor roundtrip, deterministic target resolution, and clean refusal on ambiguous targets.
52
+
53
+ ## Promotion Rule
54
+
55
+ A candidate can be promoted only when all of these are true:
56
+
57
+ - an explicit command shape exists
58
+ - parser and parity recognize the capability without family drift
59
+ - sample evidence exists
60
+ - decode evidence exists
61
+ - editor roundtrip test exists
62
+ - device/interface/object targets are deterministic
63
+ - ambiguity produces a clean refusal
64
+
65
+ If any item is missing, the feature stays `edit_proven` or `report_supported`.
66
+
67
+ ## Next Safe Action
68
+
69
+ Use `references/proof-readiness-candidates.json` as the implementation queue. Do not add new random capability names until the primary queue either promotes or records a concrete blocker.
@@ -11,16 +11,17 @@
11
11
 
12
12
  ## Step B: Public `0.2.x` Publish-Preview
13
13
 
14
- - `package.json` is versioned at `0.2.2`
15
- - npm publish target is `packet-tracer-skill@0.2.2`
16
- - release notes source is ready: `docs/release-notes-0.2.2.md`
14
+ - `packet-tracer-skill@0.2.3` is the current published capability release
15
+ - next candidate line is `0.2.4`, with notes drafted in `docs/release-notes-0.2.4.md`
16
+ - package version remains `0.2.3` until a `0.2.4` publish decision is made
17
17
  - hero visual is locked to `examples/screenshots/complex_campus_master_edit_v4.png`
18
18
  - hero demo execution plan is ready: `docs/hero-demo-plan.md`
19
19
  - GitHub About/Topics text is finalized in `docs/github-metadata.md`
20
- - launch ops runbook is ready: `docs/github-launch-ops-0.2.2.md`
20
+ - active launch ops source is `docs/github-launch-ops-0.2.3.md`
21
+ - historical `0.2.1` and `0.2.2` launch ops runbooks remain archived
21
22
  - npm publish checklist is complete and conservative runtime wording is preserved
22
23
  - remaining public launch ops are:
23
- - GitHub release creation
24
+ - GitHub release object verification for the current published tag
24
25
  - About/Topics update in GitHub UI
25
26
  - Discussions opening
26
27
  - release announcement application
@@ -1,6 +1,6 @@
1
1
  # Release Checklist
2
2
 
3
- Target release surface: `0.2.3` capability proof/readiness release.
3
+ Target release surface: `0.2.4` candidate product-hardening patch on top of the published `0.2.3` capability release.
4
4
 
5
5
  ## Product Contract
6
6
 
@@ -17,10 +17,16 @@ python .\scripts\build_examples_index.py
17
17
  python -m pytest tests -q
18
18
  node --check .\bin\packet-tracer-skill.js
19
19
  python .\scripts\generate_pkt.py --parity-report "campus with VLAN DHCP ACL"
20
- python .\scripts\runtime_doctor.py
21
- ```
22
-
23
- ## Package Audit
20
+ python .\scripts\runtime_doctor.py
21
+ ```
22
+
23
+ Runtime profile:
24
+
25
+ - default `python -m pytest tests -q` may skip `requires_twofish` tests when no local bridge is resolved
26
+ - strict release runtime gate must set `PKT_REQUIRE_TWOFISH_TESTS=1` and resolve `PKT_TWOFISH_LIBRARY` or `PKT_TWOFISH_SEARCH_ROOTS`
27
+ - `PKT_REQUIRE_TWOFISH_TESTS=1 python -m pytest tests -q` must pass before publishing any release that claims strict `.pkt` runtime proof
28
+
29
+ ## Package Audit
24
30
 
25
31
  - `package.json` description matches current product scope
26
32
  - keyword clusters cover Packet Tracer, networking labs, AI/natural language, and host ecosystems
@@ -36,10 +42,13 @@ python .\scripts\runtime_doctor.py
36
42
  - local `pkt_examples` files remain local evidence only; no raw `.pkt`, `.pka`, local audit cache, or user-supplied corpus files are packaged
37
43
  - examples index and gallery were rebuilt
38
44
  - screenshots are intentional and non-sensitive
39
- - changelog entry is updated for `0.2.3`
40
- - release notes source exists: `docs/release-notes-0.2.3.md`
45
+ - changelog entry is updated for the candidate release
46
+ - release notes source exists: `docs/release-notes-0.2.4.md`
47
+ - proof-readiness dashboard exists: `docs/proof-readiness-dashboard.md`
48
+ - proof-readiness candidates exist: `references/proof-readiness-candidates.json`
41
49
  - hero demo plan exists: `docs/hero-demo-plan.md`
42
- - GitHub launch ops runbook exists: `docs/github-launch-ops-0.2.2.md`
50
+ - current GitHub launch ops runbook exists: `docs/github-launch-ops-0.2.3.md`
51
+ - historical GitHub launch ops runbooks remain archived and current metadata points at the published release
43
52
  - canonical donor proof exists: `docs/campus-donor-proof.md`
44
53
  - hero visual is selected: `examples/screenshots/complex_campus_master_edit_v4.png`
45
54
  - runtime truth docs match current `runtime_grade` and `bridge_resolution` semantics
@@ -0,0 +1,20 @@
1
+ # `packet-tracer-skill` `0.2.4` Release Notes Draft
2
+
3
+ `0.2.4` is planned as a product hardening patch for the post-`0.2.3` capability surface.
4
+
5
+ The intended focus is examples truth, proof-card discoverability, local sample evidence presentation, and a proof-readiness promotion queue. It is not a broad generate-ready release.
6
+
7
+ ## Planned Highlights
8
+
9
+ - Examples Truth 2.0 model with `showcase_example` and `proof_card` artifacts.
10
+ - Local sample evidence board summarized without committing raw `.pkt/.pka` files.
11
+ - Proof-readiness dashboard for the next donor-backed promotion wave.
12
+ - Promotion queue for IPv4 routing/management and L2 resiliency/BGP candidates.
13
+ - Guided user summaries for doctor, parity, and explain-plan workflows.
14
+ - Current docs wording aligned around `0.2.3` as the published release and `0.2.4` as the next candidate.
15
+
16
+ ## Safety Posture
17
+
18
+ - `generate_ready=0` remains intentional.
19
+ - Raw `.pkt/.pka`, `pkt_examples`, and `output/` artifacts stay out of git and npm.
20
+ - Proof cards and promotion queues are planning and evidence surfaces, not broad topology generation claims.
@@ -47,14 +47,39 @@ Another mixed case:
47
47
  - that still means the checkout is only partially ready as a packaged repo surface
48
48
  - docs should continue saying `validated with external bridge override` rather than implying repo-local readiness
49
49
 
50
- ## Bridge Resolution
51
-
52
- - `repo_local`
53
- A repo-local vendor bridge is resolved.
54
- - `external_env`
55
- A bridge is only available through an external environment path.
56
- - `missing`
57
- No usable bridge is resolved.
50
+ ## Twofish Engine
51
+
52
+ The cipher is no longer a runtime blocker. `scripts/vendor/twofish_pure.py` is a
53
+ vendored pure-Python Twofish, verified against the official test vectors at
54
+ diagnostic time, so `decode`, `inventory`, `edit`, and `generate` are available
55
+ on a clean checkout with no binaries and no environment variables.
56
+
57
+ `twofish_backend` reports which engine is active:
58
+
59
+ - `pure_python`
60
+ The vendored repo-local engine. Always available. This is the baseline.
61
+ - `compiled`
62
+ A `_twofish` C bridge resolved from `PKT_TWOFISH_LIBRARY`,
63
+ `PKT_TWOFISH_SEARCH_ROOTS`, or `scripts/vendor/`. Optional, roughly 12x faster
64
+ on large labs, and bit-identical to the pure engine.
65
+
66
+ `bridge_resolution` describes only where the *optional accelerator* came from.
67
+ It no longer downgrades `runtime_grade`, and `external_env` is not a blocker.
68
+
69
+ ## Test Profiles
70
+
71
+ There is one gate. The suite runs the same way with or without a compiled
72
+ bridge, and nothing is skipped for lack of one:
73
+
74
+ ```
75
+ python -m pytest tests -q
76
+ ```
77
+
78
+ `PKT_REQUIRE_TWOFISH_TESTS=1` is still honoured for hosts that want to assert a
79
+ compiled accelerator is present, but it is no longer needed to prove real
80
+ `.pkt` decode/edit works.
81
+
82
+ The doctor payload exposes this as `runtime_gate_status` and repeats the most useful user-facing answer in `user_summary`. Consumers should show `user_summary.status`, `user_summary.message`, and `user_summary.next_best_action` before dumping the full diagnostic JSON.
58
83
 
59
84
  ## Publish-Preview Policy
60
85
 
@@ -1,6 +1,6 @@
1
1
  # Security Edge Deepening Proof
2
2
 
3
- This proof records the `0.2.3` candidate router-based security edge edit-proven subset. The supported surface is IOS line-based CBAC/ZFW configuration on an explicitly named router. ASA GUI/internal mutation, clientless VPN, and broad security topology generation remain blocked.
3
+ This proof records the published `0.2.3` router-based security edge edit-proven subset and the `0.2.4` candidate proof-readiness context. The supported surface is IOS line-based CBAC/ZFW configuration on an explicitly named router. ASA GUI/internal mutation, clientless VPN, and broad security topology generation remain blocked.
4
4
 
5
5
  ## Explicit Commands
6
6
 
@@ -1,75 +1,104 @@
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.1` public preview 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`
1
+ ## Examples Truth 2.0
2
+
3
+ The `examples/` directory is the public proof surface for the published `0.2.3` capability release and the next `0.2.4` candidate hardening batch. It is not a raw Packet Tracer lab dump and it is not a claim that broad `.pkt` generation is solved.
4
+
5
+ Global truth:
6
+
7
+ - atlas `generate_ready=0` remains intentional
8
+ - raw `.pkt` and `.pka` files stay out of git and npm
9
+ - local `pkt_examples` audits are evidence inputs only
10
+ - examples are either `showcase_example` artifacts or text-only `proof_card` artifacts
11
+
12
+ ## Artifact Types
13
+
14
+ `showcase_example` means:
15
+
16
+ - there is a screenshot and committed inventory manifest
17
+ - the source workflow is donor-backed or acceptance-backed as an example artifact
18
+ - the binary `.pkt` is not committed
19
+ - the example can be used in README/npm/GitHub proof surfaces
20
+
21
+ `proof_card` means:
22
+
23
+ - there is no raw `.pkt` and no screenshot requirement
24
+ - the card points to a proof doc
25
+ - it records the explicit command shape, scenario family, support level, parity excerpt, and refusal boundary
26
+ - it proves a narrow edit/readiness path, not broad topology generation
27
+
28
+ ## Current Showcase Examples
29
+
30
+ - `complex_campus_master_edit_v4`
31
+ Donor-backed complex campus edit showing management VLAN, Telnet, ACL, server services, and wireless updates without publishing the binary `.pkt`.
32
+ Screenshot: `screenshots/complex_campus_master_edit_v4.png`.
33
+ - `home_iot_cli_edit_v1`
36
34
  Home gateway and IoT registration example focused on donor-backed, constrained gateway 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, registration, and constrained donor-backed wireless examples.
67
- - `service_heavy`
68
- Server-centric service labs with richer metadata.
69
-
35
+ Screenshot: `screenshots/home_iot_cli_edit_v1.png`.
36
+ - `service_heavy_cli_edit_v1`
37
+ Service-heavy server example focused on DNS, DHCP, FTP, email, syslog, AAA, and related service metadata.
38
+ Screenshot: `screenshots/service_heavy_cli_edit_v1.png`.
39
+
40
+ ## Current Proof Cards
41
+
42
+ The proof cards make the `0.2.3` capability waves discoverable from the examples gallery and feed the `0.2.4` proof-readiness dashboard:
43
+
44
+ - IPv4 routing / NAT / IOS management
45
+ - L2 resiliency + BGP
46
+ - L2 security + QoS
47
+ - security-edge CBAC/ZFW
48
+ - voice/collaboration
49
+ - automation/controller
50
+ - industrial programming
51
+
52
+ The source file is `proof-cards.json`. It is text-only and diff-friendly.
53
+
54
+ ## Proof-Readiness Queue
55
+
56
+ The `0.2.4` candidate adds a promotion queue for deciding which edit-proven features can safely move toward `donor_backed_ready`.
57
+
58
+ - source artifact: `..\references\proof-readiness-candidates.json`
59
+ - dashboard: `..\docs\proof-readiness-dashboard.md`
60
+ - current primary queue: IPv4 routing, NAT, DHCP relay, SSH, NTP, and syslog IOS management
61
+ - current secondary queue: STP/RSTP, EtherChannel/LACP/PAgP, VTP/DTP, and BGP
62
+
63
+ The queue is intentionally conservative. Local sample counts are not enough by themselves; each promotion still needs explicit command shape, decode evidence, editor roundtrip, deterministic target resolution, and clean refusal behavior.
64
+
65
+ ## Local Sample Evidence
66
+
67
+ The local audit command can summarize user-supplied Packet Tracer labs:
68
+
69
+ ```powershell
70
+ python .\scripts\generate_pkt.py --local-sample-audit-root "C:\path\to\pkt_examples"
71
+ ```
72
+
73
+ The default output is `output/local-sample-audit.json`. That file is ignored by git and npm packaging. It can show evidence such as STP, static routes, RIPv2, OSPFv2, DHCP, ACL, SSH, NAT, HSRP, EtherChannel, and BGP counts, but it does not promote those local files into curated public donors.
74
+
75
+ ## Rebuild
76
+
77
+ Rebuild the generated index and gallery:
78
+
79
+ ```powershell
80
+ python .\scripts\build_examples_index.py
81
+ ```
82
+
83
+ Generated outputs:
84
+
85
+ - `index.json`: machine-readable combined showcase/proof-card index
86
+ - `gallery.md`: human-readable examples and evidence gallery
87
+ - `previews/*.svg`: generated fallback preview images for showcase examples without screenshots
88
+
70
89
  Launch references:
90
+
71
91
  - `..\docs\hero-demo-plan.md`
72
- - `..\docs\release-notes-0.2.1.md`
92
+ - `..\docs\release-notes-0.2.3.md`
93
+ - `..\docs\release-notes-0.2.4.md`
94
+ - `..\docs\proof-readiness-dashboard.md`
73
95
  - `..\docs\campus-donor-proof.md`
74
96
  - `..\docs\home-iot-donor-proof.md`
75
97
  - `..\docs\wan-security-donor-proof.md`
98
+ - `..\docs\ipv4-routing-management-proof.md`
99
+ - `..\docs\l2-resiliency-bgp-proof.md`
100
+ - `..\docs\l2-security-qos-proof.md`
101
+ - `..\docs\security-edge-deepening-proof.md`
102
+ - `..\docs\voice-collaboration-proof.md`
103
+ - `..\docs\automation-controller-proof.md`
104
+ - `..\docs\industrial-programming-proof.md`
@@ -1,10 +1,20 @@
1
1
  {
2
+ "schema_version": "examples.truth.v2",
2
3
  "example_name": "complex_campus_master_edit_v4",
4
+ "artifact_type": "showcase_example",
3
5
  "source_mode": "donor-backed edit",
4
6
  "scenario_family": "campus",
5
- "public_repo_policy": {
7
+ "artifact_policy": {
6
8
  "commit_pkt_binary": false,
7
- "commit_inventory_json": true
9
+ "commit_inventory_json": true,
10
+ "commit_screenshots": true,
11
+ "raw_source_public": false
12
+ },
13
+ "maturity_summary": {
14
+ "atlas_status": "known_working_example",
15
+ "example_status": "known_working_example",
16
+ "donor_backed_ready": true,
17
+ "generate_ready": false
8
18
  },
9
19
  "artifact_paths": {
10
20
  "screenshot": "examples/screenshots/complex_campus_master_edit_v4.png",