Add Cogladius to community skills - #75
Conversation
Cogladius is a permissionless task marketplace on Stellar: humans post tasks with an XLM reward locked in a non-custodial Soroban escrow, AI agents compete to solve them, and the escrow releases the reward on an on-chain ed25519-verified judge verdict. The SKILL.md teaches an agent to register, poll tasks, solve, and submit to earn XLM.
There was a problem hiding this comment.
Pull request overview
Adds Cogladius to the community skills catalog.
Changes:
- Adds a card describing Cogladius’s task marketplace workflow.
- Links to its externally hosted
SKILL.md.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "Register your AI agent to earn XLM by completing on-chain tasks. Covers permissionless one-call registration, task polling, submitting solutions, and how the non-custodial Soroban escrow releases the XLM reward on an on-chain, ed25519-verified judge verdict.", | ||
| pathLabel: "furkanyesildag/cogladius", | ||
| copyValue: | ||
| "https://github.com/furkanyesildag/cogladius/blob/main/SKILL.md", |
|
Thanks for the review! I've added valid Agent Skill YAML frontmatter ( https://github.com/furkanyesildag/cogladius/blob/main/SKILL.md Let me know if anything else is needed 🙏 |
|
Thanks for this — the settlement design is a genuinely nice pattern, and I checked that Before it goes on the catalog I want to make sure I'm reading a few things correctly: Which asset does the reward actually settle in? The card and The task Trustline. If the payout is USDC over the SAC, does the agent's Why the secret key? Happy to merge once the asset story lines up across the card, the skill, and the contract. |
Review feedback on stellar/stellar-dev-skill#75 surfaced that the repo documented an asset the code no longer settles in, plus two real bugs. Docs were pre-migration (the reward asset moved USDC -> native XLM in 0dee0b1): - README: wrong contract ID, wrong SAC, USDC throughout; proof txs now labeled honestly as having run on the retired USDC deployment - .env.local.example pointed at the RETIRED escrow contract, so anyone copying it wired themselves to a dead deployment - constants.ts mainnet fallbacks still resolved to the USDC SAC/issuer - document that usdc_sac / NEXT_PUBLIC_USDC_* / rewardUsdc are legacy names carrying XLM; the escrow is SEP-41 asset-agnostic Real bugs: - GET /api/agents/tasks returned rewardSol (a Solana-era leftover) while SKILL.md documented reward, so agents reading reward got undefined. Now returns reward + rewardXlm + rewardAsset; rewardSol deprecated. - reference agent required STELLAR_AGENT_SECRET but never signs locally; it now takes STELLAR_AGENT_PUBKEY. The generate-and-print-secret path is gone: it could earn real mainnet XLM into an ephemeral key. - fetchUsdcBalance looked for a non-native "XLM" trustline, so the dashboard showed 0 for every wallet; now reads the native balance. Dead addUsdcTrustline helper removed (would throw on Asset("XLM","")). - agent and /api/agents/register validated addresses with a shape-only regex; a typo'd address could register and never be payable. Both now verify the full strkey checksum. SKILL.md: no trustline needed (native asset), but the receiving account must already exist and be funded to the base reserve. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Thanks for the careful read — and sorry for the runaround. You were reading the repo correctly; the repo was lying. Two of your four points were real bugs, and the other two came from documentation I'd left stale. All four are now fixed. 1. Which asset — XLM is correct, the README was staleThe skill and the card are right: mainnet settles in native XLM today. What you were reading was a pre-migration README. The escrow is SEP-41 asset-agnostic — it moves whatever SAC address
The What I fixed: the README was entirely pre-migration — wrong contract ID, wrong SAC, USDC throughout. Swept. One thing I want to flag rather than paper over: the three proof transactions in the README are genuine mainnet transactions, but they ran against the USDC deployment. Same contract code, byte-for-byte — only the SAC address in the constructor differs — but they are not XLM proofs. I've labeled them honestly instead of quietly relabeling them "XLM". If you'd like a fresh post → release → refund cycle on 2. The
|
# Conflicts: # site/src/data/skills.ts
|
@furkanyesildag — thanks for the thorough turnaround back in July. I went through everything again this week, and your fixes hold up under testing: I also pushed two small commits to your branch: a merge of I ran the skill end to end, the way an agent following it would, and three things came up before I can merge. 1. The payout path has never run on the live contractI'd like to take you up on the offer you made at the end of your last comment. The escrow holds 3 XLM, and its balance hasn't changed since the task was funded on 2026-08-06 at 16:29 UTC — funds went in, nothing has come out. As far as I can trace, So yes please: a fresh post → release → refund cycle on the live contract, with the hashes posted here, would close this out. It's the single biggest thing standing between this PR and a merge. 2. The API accepts submissions on expired tasksTask 1's deadline passed on 2026-08-06 ( 3. There's no duplicate-submission guardI submitted to the same task twice with the same API key. Both went through and were independently judged, even though What did workEverything else I could exercise behaved as documented. Registration is idempotent and returns the same key. The auth check rejects a bad key, and unknown task IDs are rejected properly. The judge panel is genuinely live — it came back with real per-judge reasoning and correctly scored my placeholder text a zero. The architecture does what you say it does; it just hasn't paid anyone yet. One apology: proving this out meant writing to your production marketplace. I left two submissions on the expired task 1, both labelled as catalog review probes — please purge them, and sorry for the noise. To merge
And whenever you have a live task or two on the board, that would help — right now the only task is expired, so an agent installing this from the catalog has nothing to earn yet. Ping me when those land and I'll re-review straight away. |
Catalog review on stellar/stellar-dev-skill#75 found the API accepted submissions the escrow can never pay out, each one burning a real three-judge run. - Deadline gate: the contract refuses to release past `deadline`, so a late submission cost three LLM calls for a reward that cannot settle. Now rejected with 409 `deadline_passed` before the panel runs. - Duplicate guard: addSubmission already deduped by agent, so storage stayed correct, but the panel re-ran on every resubmit and appended a fresh set of verdicts. A polling agent could run that up quickly. Now rejected with 409 `already_submitted`, matching the `alreadySubmitted` flag /api/agents/tasks already advertises. Error responses carry a machine-readable `code` so agents can branch without parsing prose. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Thanks for going this deep, and for testing the payout path rather than taking the README's word for it. Your read was right on every count: the escrow had been sitting on 3 XLM untouched since 2026-08-06, and 1. Fresh XLM lifecycle on the live contractRan end to end on
Before the valid verdict was accepted, I sent the same Balances, if you want to check independently: the winner account went from The runner is committed as 2. Deadline check on submitLanded. The gate runs before the judge panel, so a late submission costs nothing: You were right about why this matters: the contract will not release past the deadline, so every late submission was three real LLM calls spent on a reward that could never settle. 3. Duplicate submission guardLanded, same shape: One detail from your probe that is worth reporting back, because it was slightly worse than "both went through". Both error responses carry a machine-readable 4. Your probesPurged. Task 1 is back to 0 submissions and 0 verdicts, and its status is reset from I also cleaned up a junk registration of my own from when I was testing the pubkey change back in July. Still openLive tasks on the board. This is the one item from your list I have not done yet. Task 1 is expired and it is currently the only one, so an agent installing from the catalog still has nothing to earn. I would rather post a couple of genuinely useful tasks with real rewards than seed filler to clear a checkbox, so give me a little time on that one. Say the word if you would prefer it done before merge rather than alongside it, and I will prioritise it. Everything else above is on |
Adds Cogladius to
ECOSYSTEM_CARDS.Cogladius is a permissionless task marketplace on Stellar. Humans post tasks with an XLM reward locked in a non-custodial Soroban escrow; autonomous AI agents compete to solve them; a three-judge AI panel scores submissions and the escrow contract releases the XLM reward to the winner on an on-chain, ed25519-verified verdict.
The SKILL.md teaches an AI agent to register (one permissionless API call), poll open tasks, solve, and submit to earn XLM.