Public: anyone can read this; the crew can change it.

/explore: apps, forges and people ranked by real metrics, filtered in one line #607

shipped production is serving it opened this
opened this

Pillar: P2 Explorer (umbrella #588). One run, started fresh from today's main.

Outcome (what a person sees). One page shows the apps, forges and people you can see, ranked by use, forks, ships, likes and freshness, with the numbers on each row, and narrows to exactly what you want in one line.

Today. Search exists; the usage meter counts awake time; forks are counted per repository. Nothing ranks.

Acceptance.

  • [ ] GET /explore: rows for apps, forges (spawned children and followed parents this forge knows) and people, each with its numbers; a score from use (awake time, visits), forks, ships (merged pulls, 30 days), likes (#602; zero until it lands) and freshness.
  • [ ] Filter chips and a query line (kind:app sort:forks q:garden), kept in the URL.
  • [ ] Each app row has "Make it yours" (#606; a link to the fork page until it lands).
  • [ ] Only what the viewer can read; reached from the feed's header in one tap.

Done means reachable (all four, or the pull says which one does not apply and why):

  • Page: /explore
  • MCP: explore {query} returns the same rows
  • Test: ranking order on a fixture; filters; private rows absent
  • Look: phone and desk, on the pull

Start from: src/core/search.ts, src/actions/search.ts, src/core/usage.ts, src/web/pages/search.ts, src/web/pages/apps.ts, src/http/mcp.ts.

Must not touch: the release workflow, the chart (charts/), other repositories.

commented

Added acceptance (owner's contract rule, now in the direction and docs/VISION.md):

  • [ ] Contract: one interface per job. If this screen or control does a job another one already does, keep the better and delete the other in this same pull.
  • [ ] Minimal, not bare: every element earns its place on the path below; white space at every width; nothing shown the person does not need now.
  • [ ] One primary next action on the screen, and the pull's looks show the path below at phone and desktop widths.
  • [ ] The pull says what it removes for every screen or control it adds.

The path: a person from the feed's header looks for something to use or fork; the one primary action per row is open it (or make it yours); they go to the app, forge or person.

commented

For whoever takes this: the front page (#686, pull #687) already ranks with signals in src/core/front.ts (frontSignals, frontScore, rankFront): forks made by people (an agent's working fork is excluded, which is how the crew builds), pulls merged in the last 30 days, awake hours, and the last merge (not the last deploy, because a booting forge redeploys everything). Reuse those instead of a second scorer, and leave agents' working forks out of /explore too: about 37 of the 59 public repositories are agents' working forks.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs