{"slug":"gosuda-portal-expose","name":"portal-expose","description":"Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin.","long_description":"---\nname: portal-expose\ndescription: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin.\nlicense: MIT\n---\n\n# Expose an App with Portal\n\nPortal publishes a service that is already running on the user's machine. It does not build the app or move it to a cloud host. Treat a successful tunnel as dependent on both the local app and the Portal process or agent remaining available.\n\nRead `references/portal-cli.md` when choosing commands or persistent-agent configuration. Read `references/x402.md` whenever the user requests x402 or a paid route. Read `references/safety-and-verification.md` before exposing a nontrivial project, a service with authentication, or any non-HTTP port. Read `references/game-hosting.md` whenever the user asks to host, publish, or share a game server — it covers game-specific ports, protocol identification, relay raw-transport prerequisites, and raw-endpoint verification.\n\n## Choose the Mode\n\nUse the smallest mode that satisfies the request:\n\n- Temporary web preview: `portal expose <target>`.\n- Trusted static directory or HTML entry: `portal expose --serve <path>`.\n- Multiple local HTTP services under one URL: repeat `--http-route`.\n- Paid HTTP path: routed HTTP with an explicit x402 payment contract; never enable payment implicitly.\n- Durable tunnel that should survive terminal or login restarts: an explicit `portal agent` config and managed service.\n- Session-owned durable tunnel without an OS service: `portal agent run --foreground`.\n- Game server (Minecraft, Terraria, Palworld, or any dedicated game server): always start from `references/game-hosting.md` — raw TCP/UDP transport has different prerequisites and verification than HTTP.\n\nDefault to a temporary preview when the user says only \"share\", \"preview\", or \"deploy locally\". Do not install an OS service unless the user asks for a persistent, managed, or restart-surviving tunnel and accepts that `portal agent run` without `--foreground` installs a per-user launchd or systemd unit.\n\n## Workflow\n\n### 1. Inspect the Project\n\n- Read the applicable repository instructions before running or changing anything.\n- Determine the app directory, start command, expected protocol, loopback target, and a meaningful health path.\n- Prefer declared scripts and documented ports over guessing from process lists.\n- Do not expose a port merely because it is listening. Tie it to the requested app.\n- If the project is already running, preserve its process. If it is not running and deployment was requested, start it with the project's normal command and retain the terminal/session handle.\n\nAsk one concise question only when the target, desired lifetime, or transport cannot be discovered safely. An explicit request to deploy, publish, expose, tunnel, or share authorizes creating the public tunnel for the named app; it does not authorize exposing adjacent services.\n\nFor x402, do not guess the protected path, payment methods, amount, network, recipient, or network-specific asset. Collect any missing consequential value before building the command or config. Treat an omitted method list as charging every method on the route and confirm that scope when it was not explicit.\n\n### 2. Verify the Local Service\n\n- Wait for the app's real readiness signal, not only for the process to exist.\n- Make a bounded local request to the selected target. For HTTP, record the URL and status. For TCP/UDP, use a protocol-appropriate check that does not mutate application data.\n- Stop before opening a tunnel if the local health check fails.\n- Warn and require explicit direction before exposing databases, container daemons, debug consoles, unauthenticated admin panels, or services containing sensitive data.\n- Before opening the tunnel, say that the public hostname is listed on participating relays and visible via `portal list` unless the user asked for `--hide`.\n\n### 3. Check Portal\n\n- Run `portal version` when `portal` is available.\n- If Portal is missing, present the official install method and request approval before running it because installation writes outside the project. Never execute an installer from an unknown relay or third-party URL.\n- Do not assume a hard-coded latest release or stale flags. Use the installed version and the checked-in Portal reference as the compatibility baseline.\n\n### 4. Build the Command or Agent Config\n\n- Use loopback targets such as `127.0.0.1:<port>` unless the project explicitly needs another address.\n- Use the user's requested name. Otherwise omit `--name` for a temporary preview or derive a stable DNS-label-safe name for a persistent tunnel.\n- For `portal expose`, always pass an absolute `--identity-path` outside the repository. The CLI default is `identity.json` in the process working directory and that file contains private key material. For `portal agent`, omit `identity_path` so the agent stores identity under its state directory; if you set the field, use an absolute path outside the repository.\n- Never print or commit identity JSON, control tokens, facilitator tokens, or wallet secrets.\n- With a user-selected relay on `portal expose`, pass `--relays <https-url> --discovery=false`. In persistent mode those flags are not accepted on `portal agent run`; put `relays = [\"https://...\"]` and `discovery = false` on the `[[tunnels]]` entry instead.\n- The MITM self-probe always runs. Without `--ban-mitm` / `ban_mitm = true`, a suspected TLS termination is only logged and the tunnel keeps serving. Do not claim the default path blocks a relay. Add `--ban-mitm` only when the user wants fail-closed handling. There is no flag that disables the probe.\n- Never add TCP, UDP, multi-hop, payment, or public metadata flags that the user did not request. `--hide` is the exception for listing: mention the default public listing, then add `--hide` or `hide = true` only when the user wants the tunnel unlisted.\n- For a paid route, follow `references/x402.md`. Keep payment policy on the smallest requested path, use an explicit network, and never place wallet or facilitator secrets in a command, log, committed file, or final response.\n\nBefore executing, show the exact public target and any important exposure consequence when it is not already obvious from the user's request.\n\n### 5. Start and Observe the Tunnel\n\n- Run a temporary `portal expose` in a foreground PTY or managed long-running command session. Do not hide it behind an untracked `nohup` process.\n- For persistent mode, inspect any existing agent config and running service first. `run`, `restart`, and `stop` are service-wide: they affect every `[[tunnels]]` entry that the selected service owns. Reuse and merge the existing config when the same agent should keep other tunnels. An isolated second agent needs its own config, `service_name`, `state_dir`, and loopback `control_addr`. Changing only `service_name` still shares the default state directory and `127.0.0.1:4018`. Do not stop or replace an agent that already owns unrelated tunnels.\n- Create or update only the selected agent config, then start it with `portal agent run --config <path>` after the user accepts OS-service installation, or `portal agent run --foreground --config <path>` when the current session should own the process. `--foreground` opens the interactive dashboard when stdin and stdout are TTYs. Run that command in a non-TTY managed session so logs stay capturable and the TUI does not start.\n- Do not run `portal agent dashboard`. It is an interactive TUI. Give the user that command in the handoff.\n- Capture bounded output. Redact tokens, identity material, signed payloads, and credentials.\n- HTTP tunnels are ready when a public URL is emitted. Raw TCP/UDP tunnels log `raw transport endpoints allocated` with `tcp_addr` and/or `udp_addr` instead of `service ready at <URL>`. Do not wait for an HTTPS URL on a raw transport.\n\n### 6. Verify the Public Endpoint\n\n- For HTTP, make a bounded HTTPS request to every public URL being handed off. A deliberately authenticated app may return `401` or `403`; explain that as reachable but protected. Treat unexpected `5xx`, TLS errors, or a Portal error page as a failed deployment.\n- For each paid route, make an unpaid request with a protected method and require `402 Payment Required` plus a payment-requirements header. Compare the returned network, asset, recipient, amount, and resource with the requested policy. Verify the method scope by requesting an intentionally unprotected method when one exists. Never spend funds merely to verify configuration.\n- For raw TCP or UDP, protocol-probe the allocated `tcp_addr`/`udp_addr` without mutating application data. A successful local port open is not enough.\n- When a browser-capable tool is available and the app has UI, load the primary page and check for an obvious render or runtime failure. Do not log in or submit data unless the user requested it.\n- Re-check the local health endpoint if the public request fails so the handoff distinguishes app failure from tunnel or relay failure.\n\n### 7. Hand Off the Result\n\nReport:\n\n- Deployment mode and exact local target.\n- Public URL or allocated raw endpoint, and the verified status.\n- Whether the tunnel is listed on public relays or hidden with `--hide`.\n- Whether MITM handling is detect-only or `--ban-mitm`.\n- For x402, the protected paths and methods, human amount, network, public recipient, facilitator mode, and whether the unpaid `402` challenge was verified. State explicitly when settlement was not tested.\n- The identity path and that it must stay out of version control.\n- The app and Portal process/session or OS-service ownership.\n- The exact stop or restart command, and whether that command affects other tunnels on the same agent.\n- Anything that remains temporary, unavailable, or unverified.\n\nDo not call the result permanent when the local machine, app process, or foreground tunnel must remain running.\n\n## Failure Rules\n\n- Local app unhealthy: stop before exposing it and report the failing check.\n- Portal absent and installation not approved: provide the official command without executing it.\n- No ready public URL or allocated raw endpoint: keep the bounded diagnostic output and report the relay/tunnel failure.\n- Paid route returns anything other than the expected `402` challenge: do not describe it as protected or hand it off as ready. Stop only the tunnel created by this workflow, preserve bounded diagnostics, and report the policy mismatch.\n- MITM self-probe warning without `--ban-mitm`: report the warning and offer `--ban-mitm`; do not claim the relay was blocked.\n- Requested name unavailable: offer an auto-generated or alternative name; do not silently hijack another identity.\n- Existing agent owns other tunnels: do not stop or replace it to publish this app.\n- Cancellation: stop only processes started by this workflow, unless the user explicitly asks to stop an existing app or agent.\n","tagline":"Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel,","category":"automation","tags":["agent-skill"],"author":"gosuda","verified":false,"attribution":{"status":"registry_indexed","statusLabel":"Registry indexed","shortLabel":"REGISTRY INDEXED","sourceLabel":"recursive skill source sync","sourceDetail":"gosuda/portal-tunnel","creatorName":"gosuda","creatorUrl":"https://github.com/gosuda","sourceUrl":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","indexedBy":"OpenAgentSkill community index","claimUrl":"https://www.openagentskill.com/skills/gosuda-portal-expose#claim-this-skill","claimCta":"Claim this skill","trustNote":"This listing was indexed from public sources and is not marked official until a maintainer claim is approved.","publicNote":"Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals."},"stats":{"stars":263,"forks":29,"verified_installs":0,"successful_runs":0,"total_outcomes":0,"rating":0,"review_count":0,"quality_score":40.2},"quality":{"score":71,"tier":"strong","label":"Strong","summary":"Solid option that is likely worth shortlisting for production workflows.","signals":[{"label":"GitHub stars","value":"263","tone":"neutral"},{"label":"Freshness","value":"Today","tone":"positive"},{"label":"Install ready","value":"Yes","tone":"positive"},{"label":"License","value":"MIT","tone":"neutral"}],"warnings":[]},"trust":{"version":"trust-score-v5","score":67,"base_score":75,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"sandbox_only","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["67/100 Trust Score v5","75/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":62,"weight":0.13,"status":"info","detail":"263 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":57,"weight":0.08,"status":"warn","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":54,"weight":0.12,"status":"warn","detail":"command execution surface, external package install surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"info","label":"GitHub adoption","detail":"263 GitHub stars"},{"status":"warn","label":"Stars/forks activity","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, external package install surface"},{"status":"pass","label":"Install availability","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"263 GitHub stars","repoActivity":"263 stars, 29 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","install":"npx skills add gosuda/portal-tunnel --skill portal-expose","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"sandbox_only"},"installReadiness":{"ready":true,"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","policy":"sandbox_only","label":"Sandbox only","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today","Financial domain: human review is required before use in a live investment workflow.","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"sandbox_only","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v3","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["automation","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add gosuda/portal-tunnel --skill portal-expose","trust_score":67,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review","Live brokerage, exchange, wallet, or payment credentials outside an explicitly approved sandbox"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["automation","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review","Live brokerage, exchange, wallet, or payment credentials outside an explicitly approved sandbox"],"knownRisks":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":75,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout."}}},"trust_score_v5":{"version":"trust-score-v5","score":67,"base_score":75,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"sandbox_only","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["67/100 Trust Score v5","75/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":62,"weight":0.13,"status":"info","detail":"263 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":57,"weight":0.08,"status":"warn","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":54,"weight":0.12,"status":"warn","detail":"command execution surface, external package install surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"info","label":"GitHub adoption","detail":"263 GitHub stars"},{"status":"warn","label":"Stars/forks activity","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, external package install surface"},{"status":"pass","label":"Install availability","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"263 GitHub stars","repoActivity":"263 stars, 29 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","install":"npx skills add gosuda/portal-tunnel --skill portal-expose","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"sandbox_only"},"installReadiness":{"ready":true,"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","policy":"sandbox_only","label":"Sandbox only","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today","Financial domain: human review is required before use in a live investment workflow.","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"sandbox_only","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v3","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["automation","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add gosuda/portal-tunnel --skill portal-expose","trust_score":67,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review","Live brokerage, exchange, wallet, or payment credentials outside an explicitly approved sandbox"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["automation","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review","Live brokerage, exchange, wallet, or payment credentials outside an explicitly approved sandbox"],"knownRisks":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":75,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout."}}},"trust_score_v4":{"version":"trust-score-v4","score":75,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout.","recommendedAction":"Test in a sandbox workflow and compare its install path with close alternatives.","dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":62,"weight":0.13,"status":"info","detail":"263 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":57,"weight":0.08,"status":"warn","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":54,"weight":0.12,"status":"warn","detail":"command execution surface, external package install surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"info","label":"GitHub adoption","detail":"263 GitHub stars"},{"status":"warn","label":"Stars/forks activity","detail":"263 stars, 29 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, external package install surface"},{"status":"pass","label":"Install availability","detail":"npx skills add gosuda/portal-tunnel --skill portal-expose"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern"],"warnings":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"],"evidence":{"stars":"263 GitHub stars","repoActivity":"263 stars, 29 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","install":"npx skills add gosuda/portal-tunnel --skill portal-expose","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"installReadiness":{"ready":true,"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","policy":"sandbox_only","label":"Sandbox only","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today","Financial domain: human review is required before use in a live investment workflow."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"sandbox_only","reason":"Human review or sandbox validation is required before automatic installation."},"bestFor":["automation","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review","Live brokerage, exchange, wallet, or payment credentials outside an explicitly approved sandbox"],"knownRisks":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"outcome_stats":null,"safety":{"score":48,"level":"avoid_auto_install","label":"Avoid automatic install","safety_tier":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","summary":"This skill should not be selected by an agent without explicit human security review.","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","auto_install_policy":"block","reasons":["Audit risk exceeds the requested agent policy","Audit classified this skill as risky","Audit risk risky exceeds max_risk=medium"]},"auto_install_allowed":false,"human_review_required":true,"blocked":true,"audit_risk":"risky","permission_hints":[{"id":"shell","label":"Shell or command execution","reason":"Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.","severity":"high"},{"id":"browser","label":"Browser automation","reason":"Skill may drive a browser or interact with web pages.","severity":"medium"},{"id":"network","label":"Network access","reason":"Skill likely fetches remote pages, APIs, repositories, or external services.","severity":"medium"},{"id":"filesystem","label":"Filesystem access","reason":"Skill may read or write project files, documents, generated artifacts, or local workspace state.","severity":"medium"}],"policy_warnings":["Audit risk risky exceeds max_risk=medium","High-risk permission hints: Shell or command execution","Dependency or permission surface needs review"],"constraints_applied":{"max_risk":"medium","needs_install_command":true,"min_stars":0}},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","auto_install_policy":"block","auto_install_allowed":false,"blocked":true,"human_review_required":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","reasons":["Audit risk exceeds the requested agent policy","Audit classified this skill as risky","Audit risk risky exceeds max_risk=medium"]},"eval":{"version":"openagentskill-skill-eval-v1","status":"failed","score":72,"risk_level":"high","decision":{"recommendation":"do_not_auto_install","reason":"Audit score: Risky","auto_install_allowed":false,"policy":"block","human_review_required":true},"blockers":["Audit score: Risky","Agent safety gate: This skill should not be selected by an agent without explicit human security review.","Permission surface: shell or command execution, filesystem or document access"],"warnings":["Trust score: Good trust signals with a few areas worth checking before rollout.","Audit risk risky exceeds max_risk=medium","High-risk permission hints: Shell or command execution","Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","Potential broker, wallet, exchange, or real-money execution surface; sandbox and explicit approval are required","Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata"],"validation_plan":["Inspect repository, README/SKILL.md, license, and recent commits before production use.","Install in an isolated workspace or sandbox with no production secrets available.","Run the smallest representative task and record files touched, commands run, network access, and outputs.","Compare the selected skill against at least one alternative when the eval status is review or failed.","Promote only after the agent reports a successful verification result and unresolved warnings are accepted."],"checks":[{"id":"task_fit","label":"Task fit","status":"pass","score":94,"required_for_auto_install":true,"detail":"Task wording matches this skill metadata.","evidence":["Evaluate portal-expose before installing it in an agent workflow","automation","Local desktop workflows; Claude Code teams; builders willing to evaluate younger projects"]},{"id":"install_path","label":"Install path","status":"pass","score":92,"required_for_auto_install":true,"detail":"Install handoff is available.","evidence":["npx skills add gosuda/portal-tunnel --skill portal-expose"]},{"id":"install_safety","label":"Install command safety","status":"pass","score":92,"required_for_auto_install":true,"detail":"standard package or runtime install path","evidence":["npx skills add gosuda/portal-tunnel --skill portal-expose"]},{"id":"trust_score","label":"Trust score","status":"warn","score":75,"required_for_auto_install":true,"detail":"Good trust signals with a few areas worth checking before rollout.","evidence":["Strong shortlist","263 GitHub stars","MIT"]},{"id":"audit_score","label":"Audit score","status":"fail","score":80,"required_for_auto_install":true,"detail":"Risky","evidence":["Dependency or permission surface needs review"]},{"id":"agent_safety_gate","label":"Agent safety gate","status":"fail","score":48,"required_for_auto_install":true,"detail":"This skill should not be selected by an agent without explicit human security review.","evidence":["Do not auto-install. Inspect the source, dependencies, and permission surface first.","Audit risk exceeds the requested agent policy"]},{"id":"readme_skillmd_completeness","label":"README/SKILL.md completeness","status":"pass","score":86,"required_for_auto_install":false,"detail":"Metadata includes enough usage and workflow context","evidence":["Strong README/SKILL.md context"]},{"id":"license_clarity","label":"License clarity","status":"pass","score":86,"required_for_auto_install":true,"detail":"MIT","evidence":["MIT"]},{"id":"recent_maintenance","label":"Recent maintenance","status":"pass","score":100,"required_for_auto_install":false,"detail":"Pushed today","evidence":["Pushed today"]},{"id":"permission_surface","label":"Permission surface","status":"fail","score":48,"required_for_auto_install":true,"detail":"shell or command execution, filesystem or document access","evidence":["Shell or command execution: high","Browser automation: medium","Network access: medium"]},{"id":"alternatives","label":"Alternatives available","status":"info","score":55,"required_for_auto_install":false,"detail":"No close alternatives were found in the current shortlist.","evidence":[]}],"endpoints":{"web":"https://www.openagentskill.com/skills/gosuda-portal-expose/evals","api":"/api/agent/evals?slug=gosuda-portal-expose","text":"/api/agent/evals?slug=gosuda-portal-expose&format=text"}},"agent_readable_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"gosuda-portal-expose","name":"portal-expose","description":"Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin.","category":"automation","url":"https://www.openagentskill.com/skills/gosuda-portal-expose","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","github_repo":"gosuda/portal-tunnel"},"suited_tasks":["Local desktop workflows","Claude Code teams","builders willing to evaluate younger projects","Navigate local resources","Run repeatable desktop actions","Verify file outputs","Inspect source files","Explain architecture"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","Browser agents","CLI"],"install":{"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install gosuda-portal-expose"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"portal-expose\" agent skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"portal-expose\" as a Claude Code skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"portal-expose\" from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/gosuda-portal-expose/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/gosuda-portal-expose"},"trust":{"score":75,"label":"Strong shortlist","version":"trust-score-v4","install_policy":"sandbox_only","evidence":{"stars":"263 GitHub stars","repoActivity":"263 stars, 29 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","install":"npx skills add gosuda/portal-tunnel --skill portal-expose","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["automation","agent-skill"],"known_risks":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":80,"risk_level":"risky","risk_label":"Risky","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","Potential broker, wallet, exchange, or real-money execution surface; sandbox and explicit approval are required","Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":71,"label":"Strong"},"supply":{"track":"Coding and developer agents","scenario":"Coding agents","maintenance":"Pushed today","risk":"Risky"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","high-compliance environments without internal security review","No OpenAgentSkill engagement data yet","Audit risk risky exceeds max_risk=medium","High-risk permission hints: Shell or command execution","Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision"],"agent_contract":{"task_input":"Use portal-expose in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 75/100 Strong shortlist","Audit: 80/100 Risky","Safety: 48/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"gosuda-portal-expose (portal-expose)","install_command":"npx skills add gosuda/portal-tunnel --skill portal-expose","risk_summary":"Risky; Blocked for auto-install; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"gosuda-portal-expose","task":"Use portal-expose in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/gosuda-portal-expose","api":"https://www.openagentskill.com/api/agent/skills/gosuda-portal-expose","audit":"https://www.openagentskill.com/skills/gosuda-portal-expose/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=gosuda-portal-expose&task=Use%20portal-expose%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20portal-expose%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20portal-expose%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/gosuda-portal-expose/install","manifest":"https://www.openagentskill.com/api/registry/manifest/gosuda-portal-expose"}},"machine_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"gosuda-portal-expose","name":"portal-expose","description":"Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin.","category":"automation","url":"https://www.openagentskill.com/skills/gosuda-portal-expose","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","github_repo":"gosuda/portal-tunnel"},"suited_tasks":["Local desktop workflows","Claude Code teams","builders willing to evaluate younger projects","Navigate local resources","Run repeatable desktop actions","Verify file outputs","Inspect source files","Explain architecture"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","Browser agents","CLI"],"install":{"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install gosuda-portal-expose"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"portal-expose\" agent skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"portal-expose\" as a Claude Code skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"portal-expose\" from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/gosuda-portal-expose/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/gosuda-portal-expose"},"trust":{"score":75,"label":"Strong shortlist","version":"trust-score-v4","install_policy":"sandbox_only","evidence":{"stars":"263 GitHub stars","repoActivity":"263 stars, 29 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","install":"npx skills add gosuda/portal-tunnel --skill portal-expose","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["automation","agent-skill"],"known_risks":["Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":80,"risk_level":"risky","risk_label":"Risky","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","Potential broker, wallet, exchange, or real-money execution surface; sandbox and explicit approval are required","Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":71,"label":"Strong"},"supply":{"track":"Coding and developer agents","scenario":"Coding agents","maintenance":"Pushed today","risk":"Risky"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","high-compliance environments without internal security review","No OpenAgentSkill engagement data yet","Audit risk risky exceeds max_risk=medium","High-risk permission hints: Shell or command execution","Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision"],"agent_contract":{"task_input":"Use portal-expose in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 75/100 Strong shortlist","Audit: 80/100 Risky","Safety: 48/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"gosuda-portal-expose (portal-expose)","install_command":"npx skills add gosuda/portal-tunnel --skill portal-expose","risk_summary":"Risky; Blocked for auto-install; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"gosuda-portal-expose","task":"Use portal-expose in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/gosuda-portal-expose","api":"https://www.openagentskill.com/api/agent/skills/gosuda-portal-expose","audit":"https://www.openagentskill.com/skills/gosuda-portal-expose/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=gosuda-portal-expose&task=Use%20portal-expose%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20portal-expose%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20portal-expose%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/gosuda-portal-expose/install","manifest":"https://www.openagentskill.com/api/registry/manifest/gosuda-portal-expose"}},"supply_profile":{"track":{"slug":"coding","label":"Coding and developer agents","shortLabel":"Coding","description":"Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills."},"scenario":{"label":"Coding agents","description":"I need a coding agent that can understand a repository, edit code, and review pull requests.","useCases":[{"slug":"local-desktop","title":"Local desktop"},{"slug":"coding-agents","title":"Coding agents"},{"slug":"browser-automation","title":"Browser automation"}]},"applicableAgents":["Claude Code","Browser agents","CLI","Codex","Cursor"],"install":{"ready":true,"command":"npx skills add gosuda/portal-tunnel --skill portal-expose","primaryTarget":"CLI","targetCount":4},"githubQuality":{"stars":263,"starsLabel":"263","forks":29,"license":"MIT","qualityScore":71,"trustScore":75,"auditScore":80},"maintenance":{"status":"fresh","label":"Pushed today","daysSincePush":0,"lastPushedAt":"2026-08-22T14:25:37+00:00"},"risk":{"level":"risky","label":"Risky","requiresReview":true,"notes":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","Potential broker, wallet, exchange, or real-money execution surface; sandbox and explicit approval are required","Financial research output is not financial advice; require human review before any live investment decision."]},"coverageTags":["Coding","Coding agents","automation","agent-skill"]},"audit":{"audit_score":80,"risk_level":"risky","risk_label":"Risky","quality_score":71,"trust_score":75,"maintenance_score":100,"security_score":79,"install_score":92,"warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","Potential broker, wallet, exchange, or real-money execution surface; sandbox and explicit approval are required","Financial research output is not financial advice; require human review before any live investment decision.","This skill may touch real-money trading, broker, wallet, or exchange operations; use only in a sandbox with explicit approval.","Quality score needs review","Permission surface needs review: shell or command execution, filesystem or document access","Stars/forks activity: 263 stars, 29 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, external package install surface","Permission surface: shell or command execution, filesystem or document access"]},"quality_signals":{"model":"v2","star_score":16.95,"usage_score":0,"review_score":5.25,"metadata_score":3,"freshness_score":15},"platforms":["Claude Code","Browser agents"],"use_cases":[{"slug":"local-desktop","title":"Local desktop","url":"https://www.openagentskill.com/use-cases/local-desktop"},{"slug":"coding-agents","title":"Coding agents","url":"https://www.openagentskill.com/use-cases/coding-agents"},{"slug":"browser-automation","title":"Browser automation","url":"https://www.openagentskill.com/use-cases/browser-automation"},{"slug":"github-automation","title":"GitHub automation","url":"https://www.openagentskill.com/use-cases/github-automation"}],"stacks":[{"slug":"coding-review-agent","title":"Coding review agent","url":"https://www.openagentskill.com/collections/coding-review-agent"},{"slug":"browser-qa-agent","title":"Browser QA agent","url":"https://www.openagentskill.com/collections/browser-qa-agent"},{"slug":"web-data-pipeline","title":"Web data pipeline","url":"https://www.openagentskill.com/collections/web-data-pipeline"}],"install":"npx skills add gosuda/portal-tunnel --skill portal-expose","install_targets":[{"id":"openagentskill-cli","label":"CLI","title":"OpenAgentSkill CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install gosuda-portal-expose","description":"Resolve policy, run the source installer safely, and report a verified install receipt.","copyLabel":"Copy command"},{"id":"codex","label":"Codex","title":"Codex install prompt","kind":"agent-prompt","value":"Install the \"portal-expose\" agent skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Give Codex a repo-aware install prompt when the skill is not available through a local CLI.","copyLabel":"Copy prompt"},{"id":"claude-code","label":"Claude Code","title":"Claude Code skill prompt","kind":"agent-prompt","value":"Add \"portal-expose\" as a Claude Code skill from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this prompt to ask Claude Code to add the skill and explain the local activation steps.","copyLabel":"Copy prompt"},{"id":"cursor","label":"Cursor","title":"Cursor rule prompt","kind":"agent-prompt","value":"Turn \"portal-expose\" from https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly requested TCP/UDP service reachable through Portal, then verify the public endpoint and report its lifecycle. Use when the user asks to deploy, publish, share, tunnel, expose, create a public preview, add a paid route, or configure x402 for a local app with Portal. Do not use for deploying a Portal relay, generic cloud hosting, or publishing this plugin. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"gosuda-portal-expose\",\"task\":\"Install portal-expose\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this when installing as Cursor project rules or reusable agent instructions.","copyLabel":"Copy prompt"}],"repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","github_repo":"gosuda/portal-tunnel","version":"1.0.0","license":"MIT","urls":{"web":"https://www.openagentskill.com/skills/gosuda-portal-expose","repository":"https://github.com/gosuda/portal-tunnel/tree/main/plugins/portal-deploy/skills/portal-expose","api":"/api/agent/skills/gosuda-portal-expose","install_api":"/api/skills/gosuda-portal-expose/install"},"meta":{"created_at":"2026-08-22T15:35:45.454329+00:00","updated_at":"2026-08-22T15:35:45.454329+00:00","agent_friendly":true}}