Skip to content

Dashboard & scanner polish: top-50 Markets, watch surfacing, MCP batching, README screenshots - #2

Merged
johnsonice merged 4 commits into
mainfrom
feat/dashboard-scanner-polish
Jun 30, 2026
Merged

Dashboard & scanner polish: top-50 Markets, watch surfacing, MCP batching, README screenshots#2
johnsonice merged 4 commits into
mainfrom
feat/dashboard-scanner-polish

Conversation

@johnsonice

Copy link
Copy Markdown
Contributor

Summary

Four focused commits polishing the dashboard artifact, the scanner's recommendation output, MCP read speed, and the README. No change to the money-guarding risk gate's auto-execute rules (structural arbs only still auto-fire; everything else escalates).

What's in it

1. Markets tab = top 50 by 24h volume (feat)

  • The Markets grid is now simply the 50 most-traded markets in the last 24h (live, YES > 1%), replacing the old recommended-merge + trending + top_n/MIN_TOP_N curation.
  • Gate skip decisions are no longer hidden — they surface in Recommendations as low-confidence WATCH items carrying the gate's reason, so users see the candidate and why it was set aside.

2. Richer watch explanations + dashboard polish (feat)

  • Each strategy spec carries a short plain-English blurb so a WATCH rationale explains why it's an opportunity and what the risk is.
  • WATCH confidence meters are populated and recolored for readability.

3. poly-mcp.sh --batch (perf)

  • A per-call loop re-pays the ~5s MCP handshake every call; --batch runs many tools/calls over a single session. Documented in reference/mcp.md.

4. README (docs)

  • New "The dashboard" section with Markets / Recommendations / Account screenshots.
  • "Install the skill" now leads with a natural-language prompt the agent acts on (manual commands tucked in a collapsible).
  • Documents loading the Polymarket MCP; gitignores the playwright scratch dir.

Test plan

  • uv run --with pytest --with jsonschema pytest tests/ -v67 passing (Markets top-50 / volume-ranked / dead-filtered / cap; recommendation skip→watch surfacing; plus existing gate / validator / doc tests).
  • Secret scan of the diff: clean — the README MCP token is a <YOUR_BEARER_TOKEN> placeholder; no private key.
  • Dashboard screenshots rendered from the template's built-in sample data (no live wallet/market data).

16 files changed, +578 / −231.

…h items

- Markets grid is simply the 50 most-traded markets in the last 24h (live, YES>1%),
  dropping the recommended-merge / trending / top_n curation.
- Gate skip decisions are no longer hidden: they surface in Recommendations as
  low-confidence WATCH items carrying the gate's reason.
- artifacts.md / orchestration.md / SKILL.md updated to match; the dashboard is now
  the mandatory scan deliverable.
- Strategy specs carry short plain-English blurbs so a WATCH rationale explains why
  the candidate is an opportunity and what the risk is.
- Dashboard watch items get a populated confidence meter, recolored for readability.
A per-call loop re-pays the ~5s MCP handshake every call; --batch runs many tools/calls
over a single session. Documented in reference/mcp.md.
…EADME

- Add a 'The dashboard' section with Markets / Recommendations / Account screenshots.
- Rewrite 'Install the skill' to lead with a natural-language prompt the agent acts on.
- Document loading the Polymarket MCP; gitignore the playwright scratch dir.
Copilot AI review requested due to automatic review settings June 30, 2026 04:24
@johnsonice
johnsonice merged commit a37e6fc into main Jun 30, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Polishes the Polymarket dashboard artifact and scanning output by simplifying the Markets grid to top-50 by 24h volume, surfacing risk-gate skips as WATCH recommendations with clearer explanations, and improving MCP read performance via a batched transport mode (plus accompanying documentation and README updates).

Changes:

  • Simplifies Markets tab curation to the top 50 live markets by 24h volume and keeps Recommendations separate from the grid.
  • Surfaces gate.decision=skip opportunities as low-confidence WATCH recommendations with strategy_note and plain-language gate_note.
  • Adds poly-mcp.sh --batch mode (single handshake for many calls) and updates strategy/orchestration/docs/README accordingly.

Reviewed changes

Copilot reviewed 15 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
assets/build_data.py Implements top-50-by-volume Markets selection + skip→WATCH recommendation mapping with notes/meters
tests/test_build_data.py Adds/updates unit tests for the new market ranking/cap and skip→watch surfacing behaviors
assets/poly-mcp.sh Adds --batch NDJSON mode to amortize MCP handshake and improve read throughput
assets/dashboard-template.html Updates recommendation card UI to display strategy_note and gate_note; adjusts low-band styling
SKILL.md Updates skill guidance to always emit the dashboard artifact and describes top-50 market sourcing
reference/orchestration.md Updates scan orchestration to keep skips visible and emphasizes fast MCP read paths
reference/mcp.md Documents batching strategy and the --batch mode for MCP speed
reference/artifacts.md Updates artifact schema/docs: removes trending, documents strategy/gate notes and top-50 rule
reference/strategies/*.md Updates enrichment guidance to shortlist-first and batch MCP calls instead of per-call loops
README.md Adds dashboard section/screenshots and improves “install the skill” instructions
.gitignore Ignores .playwright-mcp/ scratch directory

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread assets/build_data.py
Comment on lines +138 to +141
A gate `skip` is no longer hidden: it is surfaced as a low-confidence
*watch* item whose first signal is the gate's reason, so the user still sees
the candidate and *why* it was set aside. `auto`/`escalate` keep their own
confidence band and meter.
Comment thread assets/poly-mcp.sh
Comment on lines +94 to +97
if "error" in d:
return None, json.dumps(d["error"])
texts = [c.get("text") for c in d.get("result", {}).get("content", []) if c.get("type") == "text"]
return ("\n".join(t for t in texts if t is not None), None)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants