chore: pre-submission polish — accuracy, hygiene, CI#2
Merged
Conversation
- README: drop overclaim of OpenSea Stream API as a moat (heartbeat uses REST events polling; the stream client ships in the skill but isn't wired up here). Expand sell-side caveat to explain *why* WETH offer acceptances aren't constrained by the Privy native cap. - README repo layout: include manifest.json, LICENSE, runtime memory/ dir, and note that BOOTSTRAP.md self-deletes after first run. - Remove stale .claude/settings.local.json — leftover migration permissions from the ClawHub move. - .gitignore: fix memory paths (workspace/memory/, not memory/). - workspace/memory/.gitkeep so the dir exists at deploy time. - AGENTS.md: document memory/scan_state.json (last_drop_scan, last_trending_scan) — referenced by HEARTBEAT but previously schema-less. - HEARTBEAT.md: drop unnecessary opensea-get.sh fallback; canonical CLI is canonical. Reference scan_state.json for once-per-day scans. - manifest.json: add template.version "1.0.0"; drop empty scripts.start. - LICENSE: MIT, matching the OpenSea skill. - CONTRIBUTING.md: short guide covering versioning, validation, secret hygiene, and where the skill actually lives. - CI: .github/workflows/validate.yml runs jq shape checks on manifest.json + .openclaw/openclaw.json, presence checks on required workspace files, and a Python link-checker for relative .md links (skipping skills/opensea/* which mounts at deploy time). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced Apr 30, 2026
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
Audit pass before this template ships to ClawHub / Pinata. Three buckets: accuracy (claims that didn't match the code), hygiene (stale files, missing license, schema gaps), and CI (so the next change can't silently break the manifest or workspace shape).
Accuracy
HEARTBEAT.mdstep 4 pollsevents by-accountover REST. The skill ships a stream client, but nothing here wires it up — heartbeat agents don't keep a websocket open. Soften the marketing line.manifest.json,LICENSE, the runtimememory/dir, and notes thatBOOTSTRAP.mdself-deletes after first run.Hygiene
.claude/settings.local.json— leftover migration permissions (git submodule *,mv .git/modules/...) from the ClawHub move..gitignorealready lists.claude/; this slipped in earlier..gitignorepaths fixed (memory/*→workspace/memory/*, matching where the agent actually writes).workspace/memory/.gitkeepso the dir exists at deploy time.manifest.json: drop emptyscripts.start, addtemplate.version: "1.0.0".memory/scan_state.jsonin AGENTS.md —HEARTBEAT.mdreferencedlast_drop_scan/last_trending_scanwith no defined storage. Now schematized; HEARTBEAT updated to point at it.opensea-get.sh /api/v2/events/accounts/...fallback in HEARTBEAT step 4 — canonical CLI is canonical, fallback was noise.LICENSE(MIT, matching the OpenSea skill).CONTRIBUTING.mdcovering versioning, validation, secret hygiene, and the skill-vs-template boundary.CI
.github/workflows/validate.yml:jqshape checks onmanifest.json(every required key + types, slug regex, semver regex ontemplate.version, ClawHub slug regex on every skill).jqshape check on.openclaw/openclaw.json..github/scripts/check_links.py) verifies every relative.mdlink inREADME.md,CONTRIBUTING.md,workspace/, and.openclaw/resolves to a real file. Skipsskills/opensea/*(mounted at deploy time).Test plan
template.versionfield is the right shape for OpenClaw / Pinata (vs. the existing top-level schemaversion: 1)v1.0.0and re-deploy through Pinata to confirm the manifest still attaches the ClawHub skill cleanly🤖 Generated with Claude Code