docs: trait filtering is client-side; add memory schema#6
Closed
ryanio wants to merge 1 commit into
Closed
Conversation
Real-world feedback: an agent asked to find tiny-dinos-eth tokens with feet=skateboard|hoverboard tried the REST query-param filter on nfts list-by-collection, got back unfiltered results, and had to work out the client-side pattern from scratch. SOUL.md → How You Work: one bullet calling out that REST trait filtering doesn't work, naming both supported patterns (listed-only vs whole-collection scan), referencing the rate-limit budget, and pointing at the new skill subsection. AGENTS.md: extend memory/scan_state.json with a trait_scans cursor map so a 429 mid-scan can resume next heartbeat. Add memory/trait_holders.<slug>.json for the cached trait → token-id index. One file per collection so users tracking multiple don't collide; only created on explicit user request since the scan is expensive. Pairs with ProjectOpenSea/opensea-devtools#210 (skill-side doc). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f15b7dd to
d0cd237
Compare
Collaborator
Author
|
Closing — adding server-side trait filtering on the REST API instead. Will revisit once that ships and the client-side workaround is no longer needed. |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pairs with ProjectOpenSea/opensea-devtools#210 (skill-side doc).
Real-world feedback: a deployed agent was asked to find Tiny Dinos with
feet=skateboard|hoverboard. It tried the REST query-param filter onnfts list-by-collection, got back the same 50 NFTs regardless of filter value, and had to figure out the client-side workaround from scratch (loop active listings, fetch each NFT's traits, grep locally). The skill exposes trait enumeration and trait offers but never tells consumers how to actually find tokens with a trait.Changes
workspace/SOUL.md→ How You Work — one bullet so it's loaded every session:?trait_type=…&trait_value=…does not filterworkspace/AGENTS.md— two memory schemas:memory/scan_state.jsonwith atrait_scanscursor map so a 429 mid-scan resumes next heartbeat instead of starting over.memory/trait_holders.<slug>.json— cachedtrait_type→value→token_id[]index. One file per collection so users tracking multiple don't collide. Only created on explicit user request since the scan is expensive.What this PR doesn't do
tiny-dinos-ethstep 4b was right idea, wrong layer — that belongs in user-configured runtime state, not in the template that ships to every collector. Once the user opts in for a collection, the agent has license to write toMEMORY.mdand the newtrait_holders.<slug>.json.flipTargetPct. Trait-cross alerts can be a follow-up.Test plan
🤖 Generated with Claude Code