Repository navigation
# feat(networking): add geo_ip_rotator skill and networking category (#437) - #464
Merged
Merged
Conversation
…RPAHLS#437) - Register 'networking' category across issue template, labels, contributing guide, and readme - Implement networking/geo_ip_rotator skill bundle with Manifest v2 taxonomy - Add bounded streaming engine, multi-vector SSRF guardrails, and circuit breaker failover - Support 5 actions: fetch_via_geo, compare_regions, resolve_egress, get_proxy_context, list_supported_regions - Add data sovereignty classification, jurisdiction fencing, and cryptographic SHA-256 receipts - Add regional header synthesis and pluggable upstream proxy provider adapters - Add deterministic offline mock simulation with 16 realistic regional profiles - Add unit tests, multi-jurisdiction simulations, card schema fixture, and smoke-tested demo - Update docs, category hub, catalog page, sitemap, agent loops, pyproject extras, and changelog
14 tasks
rosspeili
approved these changes
Nov 1, 2026
rosspeili
left a comment
Contributor
There was a problem hiding this comment.
Hey @bd-c3, thanks a lot for this, this is clearly among the top tier prs that have followed contributing and/or ai native workflow in detail to ensure everything is addressed before opening a pr.
On top of that I see several key things that were not even in the issue scope, yet were considered and implemented with a thinking ahead mindset. Well done <3
Merging as is. <3
20 of 28 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Introduces the
networkingskill category and implements thenetworking/geo_ip_rotatorskill bundle. The skill provides sovereign AI agents and multi-jurisdictional workflows with policy-governed egress proxy rotation, multi-region web inspection, and downstream client context injection.Key Capabilities & File Mapping
fetch_via_geo,compare_regions,resolve_egress,get_proxy_context,list_supported_regions) implemented inskills/networking/geo_ip_rotator/skill.pyandengine.py.169.254.169.254), RFC 1918 subnets, carrier-grade NAT, numeric IP evasion, and hop-by-hop redirects inssrf.py.allow_eea_only,blocked_countries), and SHA-256 verifiable receipts insovereignty.py.Accept-Language, client hints, and platform markers inheaders.py.generic,brightdata,oxylabs,smartproxy,iproyaland downstream emitters forrequests,httpx,aiohttp,playwright,urllib, andcurlinproviders.py.mock_db.py.skills/networking/geo_ip_rotator/test_skill.py, 6 stress/penetration simulations intests/skills/networking/test_geo_ip_rotator_simulations.py, and smoke-tested demo inexamples/geo_ip_rotator_demo.py.Type of Change
skills/skills/skillware/core/loader, env, adaptersskillware/cli.py,docs/usage/cli.mdexamples/*.py, agent loops,examples/README.mdpyproject.toml,MANIFEST.inChecklist (all PRs)
Fixes #437)python -m black --check .,flake8, andruff check .pass locally (or CI-equivalent subset)pytest skills/andpytest tests/pass locally when relevant (1,272 passed, 0 failed)CHANGELOG.mdupdated under[Unreleased]when user-visible behavior changesexamples/README.mdupdated if this PR adds, renames, or removes a runnable scriptpytest tests/test_registry_docs.pywhen skills, examples index, or agent-loops matrix changedpytest tests/test_skill_docs.pywhen catalog Usage Examples or provider snippets changedNew or updated skill
Bundle and metadata
skills/networking/geo_ip_rotator/manifest.yaml:name,version,tier: core,shape: middleware,target: [software], tags, realissuerparameters,outputs,env_vars,constitution,presentationEffect, Directive, Assurance
skill.py(Effect; no ad-hoc LLM-generated execution paths)instructions.md(Directive) explains when and how to use the skillcard.json(Presentation) issuer matches manifest when presenttest_skill.py(Assurance) covers execution, SSRF containment, and schema expectationsSkillLoader.load_skill("networking/geo_ip_rotator")succeedsDocumentation and catalog
docs/skills/networking/geo_ip_rotator.md, category hub indocs/skills/networking/README.md, row indocs/skills/README.md, anddocs/sitemap.mdConstitution and safety (skills only)
allow_eea_only,blocked_countries) prior to dispatching outbound traffic.max_bytesceiling, 5 MB default / 10 MB maximum) to prevent memory exhaustion and decompression attacks.self.credential()without raw ambient environment reads.Related Issues
Fixes #437