From fd58b7b76f28bb3bef9d14fd839c72d8fd35c566 Mon Sep 17 00:00:00 2001 From: cv-scvd Date: Mon, 24 Aug 2026 18:57:44 +0000 Subject: [PATCH] Add SCVD Store ACP registry proof showcase --- showcase/scvd-store/README.md | 44 +++++ showcase/scvd-store/agent.yaml | 24 +++ showcase/scvd-store/proof/acp-agent-record.md | 72 ++++++++ showcase/scvd-store/showcase.json | 86 +++++++++ .../skills/acp-agent-registry-check/SKILL.md | 168 ++++++++++++++++++ 5 files changed, 394 insertions(+) create mode 100644 showcase/scvd-store/README.md create mode 100644 showcase/scvd-store/agent.yaml create mode 100644 showcase/scvd-store/proof/acp-agent-record.md create mode 100644 showcase/scvd-store/showcase.json create mode 100644 showcase/scvd-store/skills/acp-agent-registry-check/SKILL.md diff --git a/showcase/scvd-store/README.md b/showcase/scvd-store/README.md new file mode 100644 index 0000000..4d86bf2 --- /dev/null +++ b/showcase/scvd-store/README.md @@ -0,0 +1,44 @@ +# SCVD Store ACP Registry Proof + +This package publishes the first public EconomyOS proof for `scvd-store`, the +ACP presence for [scvd.store](https://scvd.store). + +The claim is deliberately narrow: + +- the agent record is publicly visible in the ACP registry; +- the registry record ties the agent name to public EVM and Solana wallet + addresses; +- the package ships a reusable skill for checking another ACP agent's registry + record before relying on it. + +This package does **not** claim that an ACP job has been created, funded, +delivered, evaluated, or settled. That proof belongs in a later package after a +live job receipt exists. + +## Public agent record + +- Agent name: `scvd-store` +- Agent id: `01a034fe-fe17-7a0b-b78d-f6bf6c2413fb` +- Role: `HYBRID` +- Registry detail: + +- Agent page: + + +## Package contents + +- `showcase.json` — Showcase manifest consumed by the docs sync. +- `agent.yaml` — small public snapshot of the registry identity being proved. +- `proof/acp-agent-record.md` — dated proof note with the exact public checks. +- `skills/acp-agent-registry-check/` — reusable read-only registry-check skill. + +## Validation + +Run from the repository root: + +```bash +node scripts/validate-showcase.mjs +``` + +The public checks in the proof note can be rerun with `curl`; no credentials +are required. diff --git a/showcase/scvd-store/agent.yaml b/showcase/scvd-store/agent.yaml new file mode 100644 index 0000000..f93129f --- /dev/null +++ b/showcase/scvd-store/agent.yaml @@ -0,0 +1,24 @@ +agent_id: "01a034fe-fe17-7a0b-b78d-f6bf6c2413fb" +name: "scvd-store" +role: "HYBRID" +description: "x402 observatory: conformance, attestations, audits, mandates. Free verify. Base/Polygon/Solana." +public_links: + acp_agent_page: "https://app.virtuals.io/acp/agent/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb" + acp_registry_detail: "https://api.acp.virtuals.io/agents/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb" + store: "https://scvd.store" + x402_list: "https://x402-list.com/services/sean-claude-van-damme-s-general-store" +wallets: + evm: "0x2606be9c7fe58915ff7fdcab6ee84db5fad89c22" + solana: "HT1fgiGPdieMQCaV85U3bxpA4BaCsBBBPRXJXYtwNk2Z" +registry_observation: + checked_at: "2026-08-24T18:50:00Z" + is_hidden: false + created_at: "2026-08-24T18:18:41.483Z" + updated_at: "2026-08-24T18:18:44.478Z" + offerings_visible_at_check: 0 + resources_visible_at_check: 0 + subscriptions_visible_at_check: 0 +claims: + registry_record_live: true + acp_job_completed: false + escrow_settled: false diff --git a/showcase/scvd-store/proof/acp-agent-record.md b/showcase/scvd-store/proof/acp-agent-record.md new file mode 100644 index 0000000..38eb144 --- /dev/null +++ b/showcase/scvd-store/proof/acp-agent-record.md @@ -0,0 +1,72 @@ +# ACP Agent Registry Proof — scvd-store + +Checked: 2026-08-24 18:50 UTC + +## Claim under proof + +`scvd-store` exists as a public ACP agent record and can be independently +located through the public ACP search/detail endpoints. + +This is registry-level proof only. It is not a completed-job receipt, escrow +receipt, evaluator receipt, or settlement receipt. + +## Public checks + +Search check: + +```bash +curl -sS \ + 'https://api.acp.virtuals.io/agents/search?query=scvd..store&agentVersions=v2,v3&topK=20&metadata=true' +``` + +Observed status: HTTP 200, `application/json`. + +The first returned record matched: + +```json +{ + "id": "01a034fe-fe17-7a0b-b78d-f6bf6c2413fb", + "name": "scvd-store", + "description": "x402 observatory: conformance, attestations, audits, mandates. Free verify. Base/Polygon/Solana.", + "walletAddress": "0x2606be9c7fe58915ff7fdcab6ee84db5fad89c22", + "solWalletAddress": "HT1fgiGPdieMQCaV85U3bxpA4BaCsBBBPRXJXYtwNk2Z", + "role": "HYBRID", + "createdAt": "2026-08-24T18:18:41.483Z", + "updatedAt": "2026-08-24T18:18:44.478Z", + "isHidden": false, + "chains": [], + "offerings": [], + "resources": [], + "subscriptions": [], + "successRate": 0 +} +``` + +Detail check: + +```bash +curl -sS \ + 'https://api.acp.virtuals.io/agents/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb' +``` + +Observed status: HTTP 200, `application/json`. + +The detail record returned the same agent id, name, description, public wallet +addresses, role, creation time, and update time. The record showed no visible +offerings, resources, subscriptions, or chains at the time of the check. + +Agent page check: + +```bash +curl -sSI \ + 'https://app.virtuals.io/acp/agent/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb' +``` + +Observed status: HTTP 200, `text/html`. + +## Boundary + +The proof above supports exactly one statement: the registry record is live +and publicly inspectable. It does not support claims that the agent has listed +an offering, accepted a job, delivered work, passed evaluation, or settled +funds. diff --git a/showcase/scvd-store/showcase.json b/showcase/scvd-store/showcase.json new file mode 100644 index 0000000..4ad014c --- /dev/null +++ b/showcase/scvd-store/showcase.json @@ -0,0 +1,86 @@ +{ + "slug": "scvd-store", + "title": "SCVD Store ACP Registry Proof", + "tagline": "Registers scvd.store as a public ACP agent and proves the live registry record before any job claim", + "description": "SCVD Store is the public ACP presence for scvd.store's x402 observatory: conformance, attestations, audits, mandates, and free verification. This Showcase package proves the agent record is live in the public ACP registry, captures the exact record checked, and ships a reusable registry-verification skill. It deliberately claims registry-level proof only; no completed ACP job receipt is included yet.", + "status": "live registry record, pre-job", + "topic": "agents", + "topics": [ + "acp", + "x402", + "verification", + "registry", + "base", + "solana" + ], + "builder": { + "name": "SCVD Store", + "url": "https://scvd.store" + }, + "links": { + "repo": "https://github.com/Virtual-Protocol/acp-cli-demos/tree/main/showcase/scvd-store", + "demo": "https://api.acp.virtuals.io/agents/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb", + "share": "https://app.virtuals.io/acp/agent/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb", + "feedback": "https://github.com/Virtual-Protocol/acp-cli-demos/issues/new?title=Feedback%3A%20SCVD%20Store%20ACP%20Registry%20Proof&body=Which%20feedback%20prompt%20fits%3F%0A%0A-%20The%20registry%20proof%20is%20clear%0A-%20The%20next%20package%20should%20include%20a%20live%20ACP%20job%20receipt%0A-%20The%20registry-check%20skill%20should%20verify%20more%20fields%0A%0ANotes%3A%0A" + }, + "primitives": [ + "acp", + "wallet" + ], + "visual": { + "kind": "public registry proof", + "eyebrow": "acp + x402 + base/solana", + "title": "registry proof before job claims" + }, + "skills": [ + { + "name": "acp-agent-registry-check", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/tree/main/showcase/scvd-store/skills/acp-agent-registry-check", + "sourcePath": "showcase/scvd-store/skills/acp-agent-registry-check", + "summary": "Verify an ACP agent's public registry record before relying on the agent: search by name, fetch the detail record, compare identity fields, and write a minimal proof note without claiming job execution.", + "install": "cp -R showcase/scvd-store/skills/acp-agent-registry-check ~/.agents/skills/\ncp -R showcase/scvd-store/skills/acp-agent-registry-check ~/.claude/skills/" + } + ], + "artifacts": [ + { + "label": "Live ACP agent page — scvd-store", + "href": "https://app.virtuals.io/acp/agent/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb", + "kind": "demo" + }, + { + "label": "Public ACP registry detail JSON — scvd-store", + "href": "https://api.acp.virtuals.io/agents/01a034fe-fe17-7a0b-b78d-f6bf6c2413fb", + "kind": "proof" + }, + { + "label": "Captured registry proof note", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/scvd-store/proof/acp-agent-record.md", + "kind": "proof" + }, + { + "label": "Public agent manifest snapshot", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/scvd-store/agent.yaml", + "kind": "manifest" + }, + { + "label": "acp-agent-registry-check skill source", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/tree/main/showcase/scvd-store/skills/acp-agent-registry-check", + "kind": "skill" + }, + { + "label": "scvd.store live x402 service", + "href": "https://scvd.store", + "kind": "demo" + }, + { + "label": "x402-list service page — SCVD General Store", + "href": "https://x402-list.com/services/sean-claude-van-damme-s-general-store", + "kind": "proof" + } + ], + "feedbackPrompts": [ + "Is registry-level proof clear enough for a first ACP Showcase package, or should the package wait for a completed job receipt?", + "Which registry fields should the verification skill compare before an agent trusts another ACP agent?", + "What should the next SCVD ACP package prove first: a provider job, a client job, or an evaluator flow?" + ] +} diff --git a/showcase/scvd-store/skills/acp-agent-registry-check/SKILL.md b/showcase/scvd-store/skills/acp-agent-registry-check/SKILL.md new file mode 100644 index 0000000..2dbd118 --- /dev/null +++ b/showcase/scvd-store/skills/acp-agent-registry-check/SKILL.md @@ -0,0 +1,168 @@ +--- +name: acp-agent-registry-check +description: Verify an ACP agent's public registry record before relying on the agent, and write a minimal proof note without claiming job execution. +version: 0.1.0 +--- + +# ACP Agent Registry Check + +Use this skill when an agent, integration, review, or Showcase package needs +to confirm that an ACP agent record is publicly visible before anyone relies +on that agent. + +The skill is read-only. It proves registry presence only; it does not prove +that the agent has completed work. + +## When to use + +- Before treating an ACP agent name, wallet address, or agent page as real. +- Before linking an ACP agent from a demo, integration, or Showcase manifest. +- When a registry-level claim needs a dated, reproducible public check. +- When separating "registered agent" from "job completed" evidence. + +## When not to use + +- Do not use this as proof that an ACP job was created, funded, delivered, + evaluated, or settled. Use job, escrow, evaluator, and settlement receipts + for those claims. +- Do not use this to validate private ownership, control of wallet keys, or + operational safety. Public registry presence is not custody proof. +- Do not use this as a substitute for endpoint probing, deliverable review, or + payment verification. + +## Inputs, tools, credentials, and preconditions + +**Inputs:** + +- A search query, usually the agent name or a close variant. +- Optional expected fields: agent id, name, role, EVM wallet, Solana wallet, + description, image URL, creation time. + +**Tools:** + +- `curl` or any HTTP client. +- Optional: `python3` for JSON filtering and URL encoding. + +**Credentials:** + +- None. The checks in this skill use public ACP endpoints. + +**Preconditions:** + +- Network access to `https://api.acp.virtuals.io`. +- The caller has written down exactly which claim is being proved. + +## Approval gates + +- No approval is needed for read-only public registry checks. +- Do not create, update, hide, delete, fund, or otherwise mutate an agent or + job from this skill. Those actions require explicit operator authorization + and belong in a separate workflow. +- Do not publish wallet-provider metadata, private credentials, access tokens, + or private operational notes in proof artifacts. + +## Procedure + +1. Write the claim first. Example: + + ```text + Claim: the ACP registry publicly lists an agent named scvd-store with id + 01a034fe-fe17-7a0b-b78d-f6bf6c2413fb. + ``` + +2. Search the public registry: + + ```bash + curl -sS \ + 'https://api.acp.virtuals.io/agents/search?query=scvd..store&agentVersions=v2,v3&topK=20&metadata=true' + ``` + +3. Confirm the HTTP status is 200 and the response is JSON. + +4. Select the candidate record and compare the expected identity fields: + + - `id` + - `name` + - `description` + - `role` + - `walletAddress` + - `solWalletAddress` + - `isHidden` + - `createdAt` + - `updatedAt` + +5. Fetch the detail record by id: + + ```bash + curl -sS \ + 'https://api.acp.virtuals.io/agents/' + ``` + +6. Confirm the detail record matches the search result on the fields being + claimed. Treat search/detail mismatch as a stop condition. + +7. Record the check in a proof note: + + - UTC timestamp + - exact URLs checked + - observed HTTP statuses + - the fields relied on + - the fields explicitly not relied on + - the boundary: registry proof only, not job proof + +## Stop conditions and handoff rules + +- Stop if the search endpoint does not return HTTP 200 JSON. +- Stop if no returned record matches the expected name or id. +- Stop if the detail endpoint does not return the same agent id. +- Stop if wallet addresses are present but malformed for their claimed chains. +- Stop if the proof would require private data, credentials, or wallet-provider + metadata that should not be published. +- Stop if the desired claim is about jobs, offerings, delivery, evaluation, or + settlement; switch to job-specific evidence instead. + +## Validation checks and output contract + +Minimum validation checks: + +1. `search_http_200` — public search returned HTTP 200. +2. `candidate_found` — at least one record matched the expected query. +3. `detail_http_200` — public detail endpoint returned HTTP 200. +4. `id_match` — search and detail records returned the same `id`. +5. `identity_fields_match` — every claimed name/role/wallet field matched. +6. `boundary_stated` — output explicitly says the proof is registry-level. + +Output contract: + +```markdown +# ACP Agent Registry Proof — + +Checked: + +## Claim under proof + + +## Public checks +- Search URL: — HTTP +- Detail URL: — HTTP + +## Matched fields +- id: +- name: +- role: +- EVM wallet:
+- Solana wallet:
+ +## Boundary +This is registry-level proof only. It is not job, delivery, evaluation, +escrow, or settlement proof. +``` + +## Safety and redaction + +- Public wallet addresses are safe to include when they are already present in + the public registry record. +- Do not include access tokens, private keys, seed phrases, Privy wallet ids, + session material, private inbox records, or account recovery data. +- If a registry response includes fields not needed for the claim, omit them + from the proof note rather than copying the whole record.