Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new nodit-openapi-skill wrapper to expose a narrowly scoped, read-only subset of Nodit’s Web3 Data API via UXC, along with documentation and validation wiring.
Changes:
- Added a new skill package (
SKILL.md,agents/openai.yaml,references/usage-patterns.md,scripts/validate.sh). - Added a curated OpenAPI 3.0.3 schema for the selected Nodit read endpoints.
- Updated
docs/skills.mdto include and validate the new skill.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/nodit-openapi-skill/scripts/validate.sh | Adds a validator to enforce required skill packaging + schema/path expectations. |
| skills/nodit-openapi-skill/references/usage-patterns.md | Provides link/auth setup and example invocations for the curated endpoints. |
| skills/nodit-openapi-skill/references/nodit-web3.openapi.json | Curated OpenAPI schema for the selected Nodit read surface. |
| skills/nodit-openapi-skill/agents/openai.yaml | Registers display name/description/default prompt for the agent wrapper. |
| skills/nodit-openapi-skill/SKILL.md | Main skill docs: scope, auth, workflow, and guardrails. |
| docs/skills.md | Adds skill catalog entry and validation instructions for Nodit. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| contractAddresses:='["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"]' | ||
|
|
||
| # Read token prices by contracts | ||
| nodit-openapi-cli post:/v1/{chain}/{network}/token/getTokenPricesByContracts \ | ||
| chain=ethereum \ | ||
| network=mainnet \ | ||
| contractAddresses:='["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"]' |
| - `nodit-openapi-cli post:/v1/{chain}/{network}/token/getTokenContractMetadataByContracts chain=ethereum network=mainnet contractAddresses:='[\"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\"]'` | ||
|
|
||
| 4. Execute with key/value parameters: | ||
| - `nodit-openapi-cli post:/v1/{chain}/{network}/token/getTokenPricesByContracts chain=ethereum network=mainnet contractAddresses:='[\"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\"]'` |
| if rg -q -- "--args\\s+'\\{" "${SKILL_FILE}" "${USAGE_FILE}"; then | ||
| fail 'found banned legacy JSON argument pattern' | ||
| fi | ||
|
|
There was a problem hiding this comment.
Review for PR #315: feat: add Nodit Web3 Data API skill
Summary
This PR adds a new nodit-openapi-skill wrapper for Nodit's Web3 Data API. The implementation follows established patterns from similar openapi skills (Chainbase, Alchemy, Moralis) and includes proper guardrails acknowledging service overlap.
Conclusion: APPROVED with minor suggestions
Analysis
Strengths
- Follows established patterns: The skill structure matches existing openapi skills (SKILL.md, agents/openai.yaml, references/, scripts/validate.sh)
- Narrow, intentional scope: v1 focuses on 5 core read operations (entity lookup, native balance, transactions, token metadata, token prices)
- Overlap-aware guardrails: SKILL.md explicitly acknowledges overlap with Chainbase, Alchemy, and Moralis
- Validation passes: The validate.sh script runs successfully
- Documentation complete: Includes usage patterns, OpenAPI schema, and integration docs
Scope Assessment
The selected endpoints are appropriate for v1:
post:/v1/multichain/lookupEntities- Cross-chain entity discoverypost:/v1/{chain}/{network}/native/getNativeBalanceByAccount- Native balance readspost:/v1/{chain}/{network}/blockchain/getTransactionsByAccount- Transaction historypost:/v1/{chain}/{network}/token/getTokenContractMetadataByContracts- Token metadatapost:/v1/{chain}/{network}/token/getTokenPricesByContracts- Token prices
All are read-only operations, consistent with the "read-first" guardrails.
Code Quality
- OpenAPI schema: Well-structured with proper path templating and security schemes
- Validation script: Comprehensive checks for required files, schema validity, and documentation completeness
- Agent configuration: Follows the standard display_name/short_description/default_prompt pattern
- Documentation: Clear examples and auth setup instructions
Findings
Suggestions (non-blocking)
-
SKILL.md line 59: The schema URL references
mainbranch. Consider documenting that this requires internet access to fetch:--schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/nodit-openapi-skill/references/nodit-web3.openapi.json
This is already implied by "Network access to
https://web3.nodit.io" but could be more explicit about GitHub raw content access. -
SKILL.md line 144: The overlap guidance is good but could be more actionable. Current text:
Prefer Nodit when its multi-chain ergonomics or endpoint shape is a better fit for the task
Consider adding a concrete example of when Nodit's multi-chain design is advantageous (e.g., "Use Nodit when you need consistent cross-chain entity resolution via
lookupEntities").
Verification
- ✅ Validation script passes
- ✅ Follows openapi skill conventions
- ✅ Proper API key auth configuration
- ✅ Read-only scope maintained
- ✅ Overlap acknowledged in guardrails
- ✅ Documentation complete
- ✅ Rust formatting verified (mentioned in PR description)
Recommendation
APPROVE - This is a well-scoped addition that follows repository conventions. The narrow v1 surface and explicit overlap guardrails show thoughtful consideration of the existing ecosystem.
The suggestions above are minor enhancements and do not block merge.
Review FindingsThis review includes 2 inline suggestions (nit-level, non-blocking):
Both suggestions are documentation improvements and do not block merge. Full review details: #315 |
3e76486 to
02c58ff
Compare
What
skills/nodit-openapi-skilldocs/skills.mdWhy
Noditadds a credible multi-chain indexed data surface, but it overlaps withChainbase,Alchemy, andMoralis.This PR keeps the wrapper intentionally narrow so it exposes the best-fit Nodit workflows without implying it should replace the existing direct-provider skills.
How
SKILL.md,agents/openai.yaml,references/usage-patterns.md,scripts/validate.shTesting
bash skills/nodit-openapi-skill/scripts/validate.shcargo fmt --checkCloses #314
Refs #168