← 返回 Skills 市场
franvinas

EdgeOS Applications

作者 Francisco Viñas · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ 安全检测通过
363
总下载
1
收藏
0
当前安装
3
版本数
在 OpenClaw 中安装
/install edgeos-applications
功能描述
Apply to an EdgeOS popup city and buy tickets through OpenClaw. Use when users ask to authenticate by email OTP, submit/check popup applications, retrieve ac...
使用说明 (SKILL.md)

OpenClaw Popup Application (v1)

Run the EdgeOS application flow with a strict, reliable sequence:

  1. Authenticate user via OTP once per session.
  2. Persist and reuse JWT for all subsequent calls in that session.
  3. Resolve target popup.
  4. Collect required application fields.
  5. Submit application.
  6. Check status on demand.
  7. After acceptance, guide product selection and payment.

Read these references before executing:

  • {baseDir}/references/conversation-flow.md
  • {baseDir}/references/flow.md
  • {baseDir}/references/api-contract.md (API source of truth)

Before collecting fields, read workspace USER.md and use it as prefill context when values are relevant and trustworthy for the current user.

Runtime configuration

This v1 skill is intentionally pinned to PROD backend values (no user setup required). Values are defined once in:

  • {baseDir}/scripts/env.sh

Do not ask users to configure runtime values in v1. Use the values from scripts/env.sh consistently for auth and API calls.

Script-first rule

Prefer scripts in {baseDir}/scripts over ad-hoc curl construction:

  • auth_request_otp.sh
  • auth_login.sh (persists JWT in local state file)
  • submit_application.sh
  • check_application_status.sh (supports --application-id or --citizen-id + --popup-city-id)
  • payment_preview.sh
  • payment_create.sh
  • payment_status.sh
  • buy_ticket_challenge.sh (x402 challenge from /agent/buy-ticket)
  • buy_ticket_submit.sh (x402 submit with PAYMENT-SIGNATURE, optional AGENTKIT)

Only fall back to raw curl if a script cannot handle the case.

Data collection policy (strict minimal questions)

Use this exact sequence:

  1. Determine required + optional application fields.
  2. Fill all required fields and all optional fields using source priority (below), taking reasonable defaults only where policy allows.
  3. Ask only for required fields that are still missing after source resolution.
  4. Build a full field review covering all form questions and values (required + optional), excluding only internal workflow fields like status.
  5. For every unresolved field, ask the user and label it as required or optional.
  6. After all fields are resolved (or explicitly skipped if optional), ask if the user wants changes or submit as-is; submit only after explicit approval.

Source priority (authoritative order)

  1. USER.md (primary source for all mappable fields)
  2. Authenticated API profile/application context
  3. Current session and prior user turns
  4. Channel sender metadata inference

If a field is present in USER.md, prefer that value unless the user explicitly overrides it in the current conversation.

Additional rules:

  • For names specifically, infer before asking (profile -> known identity -> sender display name parsing).
  • Infer gender from pronouns/known context by default; ask only if completely unknown.
  • Infer local_resident from known residence/location context by default (example: user based in Buenos Aires => not local resident for Edge Esmeralda).
  • Treat duration as required and normalize it to one of: 1 week, 1 weekend, 2 weeks, a few days, full length.
  • Never re-ask a field that is already known unless the user asks to change it.
  • Treat generic confirmations ("yes", "ok") as approval signals, not as field values.
  • Infer optional booleans from user context when plausible (e.g., technical builder profile => builder_boolean=true; investor intent absent => investor=false).
  • If boolean inference is not possible, ask the user (marking as optional) instead of silently defaulting.
  • Do not invent personal free-text answers (e.g., goals). Ask when unknown (marking as optional).
  • Required fields must always be resolved before submit.

Session auth handling

  • After successful OTP login, persist JWT using auth_login.sh and reuse it for all subsequent API requests.
  • Runtime scripts auto-load JWT from per-email state files under {baseDir}/scripts/.state/.
  • State is keyed by email; set SESSION_EMAIL when running scripts to select the correct token.
  • Do not request OTP again while JWT works.
  • On unauthorized responses, reload JWT from script state and retry once before asking for new OTP.
  • Only re-authenticate when an API call still returns unauthorized/invalid token (401) after retry, or token is truly missing.

Crypto payment support (x402)

When the user chooses to pay with crypto, the skill uses POST /agent/buy-ticket (x402 protocol). The skill gets payment requirements from the server, provides them to the agent, and the agent signs the USDC transfer with whatever wallet it has configured (CDP, MCP tool, etc.). The skill does NOT handle wallet signing — it provides the data and the agent handles signing.

World ID-verified agents (via AgentKit) receive a 10% discount automatically when the AGENTKIT header is included with a valid signed payload.

Guardrails

  • Never expose full OTP codes or JWTs.
  • Never force server-owned status transitions.
  • Never create a payment unless application status is accepted.
  • Never submit an application for a popup that has already ended (end_date \x3C now).
  • Keep prompts short and ask one question at a time.
  • Confirm before final submission.
  • Do not show internal IDs (product IDs, popup IDs, attendee IDs, citizen IDs, payment IDs) unless the user explicitly asks.
  • Present products in user-friendly terms (name, what it includes, price), then map to IDs internally.
  • Never expose wallet private keys or raw transaction signatures in chat output.
  • When presenting x402 payment info, show human-readable amounts (e.g. "$10.00 USDC") not atomic units.
  • Convert USDC atomic amounts: divide by 1,000,000 for display (e.g. "1000000" → "$1.00").

Outputs to return

  • current status
  • concise next step guidance
  • include IDs only when operationally useful or when explicitly requested by the user

On duplicate submissions, return existing application status instead of surfacing a raw failure.

安全使用建议
This skill appears to do what it claims: it talks to a single backend (BASE_URL), uses email OTP to get JWTs, persists JWTs under scripts/.state, and orchestrates application submission and either checkout-link or x402 crypto payments. Things to consider before installing: 1) the skill will store session JWTs on disk (scripts/.state) — if you share the agent workspace, those tokens could be exposed; 2) the skill expects you or your agent to sign crypto payments (it does not hold private keys) but it can submit a payment request if given the signature/header — confirm payments explicitly; 3) the skill reads workspace USER.md for prefill data — ensure that file contains only data you want the skill to use; 4) verify the BASE_URL (https://api-citizen-portal.simplefi.tech) is the expected service for your use case. If any of those behaviors are unacceptable, review/modify the scripts (they are bundled) or do not enable the skill.
功能分析
Type: OpenClaw Skill Name: edgeos-applications Version: 1.0.2 The skill bundle is designed to automate applications and ticket purchases for EdgeOS popup cities via the SimpleFi API (api-citizen-portal.simplefi.tech). It handles authentication via email OTP, manages session JWTs in a local state directory, and supports both checkout links and crypto payments using the x402 protocol. The implementation uses standard shell scripts and Python for data processing, and the SKILL.md instructions include explicit guardrails to prevent the agent from exposing sensitive information like auth tokens or private keys. No evidence of data exfiltration, malicious execution, or unauthorized persistence was found.
能力评估
Purpose & Capability
Name/description align with the included scripts and references. All network calls target the single documented API base (BASE_URL in scripts/env.sh) and the scripts implement OTP auth, application submit/check, product listing, preview/create checkout flows, and x402 payment challenge/submit as described.
Instruction Scope
SKILL.md explicitly instructs the agent to use the provided scripts, to read reference docs, and to prefill from a workspace USER.md. Reading USER.md for prefill is reasonable for this purpose but is an extra source of user data not declared in manifest. Scripts persist and reuse JWTs from a local scripts/.state directory—this is expected for session management but worth noting.
Install Mechanism
There is no install spec or remote download; the skill is instruction-first with bundled shell scripts. No external package installs or network downloads occur at install time, which reduces supply-chain risk.
Credentials
The skill does not declare or require unrelated secrets. It operates with OTP-derived JWTs and optional SESSION_EMAIL/JWT env usage. That credential model is proportional to tasks (authenticate and call the API).
Persistence & Privilege
always:false and user-invocable: true (normal). The scripts persist JWT tokens into files under scripts/.state and will read them automatically; combined with autonomous invocation this increases blast radius if the agent is allowed to act without clear user consent for payments. The SKILL.md includes guardrails to confirm before submission and to never expose OTP/JWTs.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install edgeos-applications
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /edgeos-applications 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
Update auth endpoint, add x402 buy-ticket scripts, improve payment-mode prompt, and normalize API base URL to api-citizen-portal.simplefi.tech
v1.0.1
Security hardening: switched OTP init to authenticate-edgeclaw, removed raw API outputs from scripts.
v1.0.0
Initial public release: popup application + status + accepted-to-payment flow
元数据
Slug edgeos-applications
版本 1.0.2
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 3
常见问题

EdgeOS Applications 是什么?

Apply to an EdgeOS popup city and buy tickets through OpenClaw. Use when users ask to authenticate by email OTP, submit/check popup applications, retrieve ac... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 363 次。

如何安装 EdgeOS Applications?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install edgeos-applications」即可一键安装,无需额外配置。

EdgeOS Applications 是免费的吗?

是的,EdgeOS Applications 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

EdgeOS Applications 支持哪些平台?

EdgeOS Applications 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 EdgeOS Applications?

由 Francisco Viñas(@franvinas)开发并维护,当前版本 v1.0.2。

💬 留言讨论