{"id":50804955,"url":"https://github.com/microchipgnu/frames-examples","last_synced_at":"2026-06-13T00:03:55.117Z","repository":{"id":354927014,"uuid":"1226049946","full_name":"microchipgnu/frames-examples","owner":"microchipgnu","description":"Reference repo: maintain multiple live datasets with frames + opencode on a daily cron.","archived":false,"fork":false,"pushed_at":"2026-05-01T00:22:42.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T01:17:16.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microchipgnu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T23:26:00.000Z","updated_at":"2026-05-01T00:22:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/microchipgnu/frames-examples","commit_stats":null,"previous_names":["microchipgnu/frames-examples"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/microchipgnu/frames-examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microchipgnu%2Fframes-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microchipgnu%2Fframes-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microchipgnu%2Fframes-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microchipgnu%2Fframes-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microchipgnu","download_url":"https://codeload.github.com/microchipgnu/frames-examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microchipgnu%2Fframes-examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34266919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-13T00:03:54.161Z","updated_at":"2026-06-13T00:03:55.107Z","avatar_url":"https://github.com/microchipgnu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# frames-examples\n\nA reference repo showing how to maintain **multiple live datasets** with\n[frames](https://github.com/frames-ag) + an agent harness ([opencode](https://opencode.ai))\non a daily cron.\n\nInspired by the [blindspot.news](https://github.com/microchipgnu/blindspot.news)\npipeline — same pattern, but the writes happen through MCP tools instead of\nJSON blobs, so every fact has a source, every change is an event, and the\ngit history doubles as an audit log.\n\n## What's here\n\nDatasets, each in its own directory under `datasets/`:\n\n| Dataset | What it tracks |\n|---|---|\n| [`mcp-servers`](datasets/mcp-servers) | Every notable MCP server on GitHub. Recursive: frames cataloging the protocol it speaks. |\n| [`ai-promises`](datasets/ai-promises) | Public roadmap commitments by AI labs, with a `shipped?` column. |\n| [`ai-models`](datasets/ai-models) | Every notable model release, every vendor, every modality. |\n| [`elon-tweets`](datasets/elon-tweets) | Recent posts from @elonmusk on X, classified by topic. |\n| [`blindspot-briefs`](datasets/blindspot-briefs) | Daily 8-section analytical briefs on yesterday's news. |\n| [`blindspot-threads`](datasets/blindspot-threads) | Non-obvious connections across each day's briefs. |\n| [`agent-networks`](datasets/agent-networks) | Open questions on the agent / machine-network economy, with rolling evidence. |\n| [`agent-wallets`](datasets/agent-wallets) | Live catalog of agent wallets, registries, and payment protocols + the services each one exposes. |\n\nEach dataset is a self-contained frame: `schema.yml` (the contract),\n`prompt.md` (the maintenance loop), `events.ndjson` (the append-only log),\nand a regenerated SQLite index under `.frame/`.\n\n## How it works\n\n```\n.github/workflows/tick.yml   # daily cron, matrix over datasets\nopencode.json                # opencode config: provider + 3 frame MCP servers\n.mcp.json                    # same MCP wiring for Claude Code / other clients\ndatasets/\u003cname\u003e/prompt.md    # per-dataset agent loop\ndatasets/\u003cname\u003e/schema.yml   # field contract\ndatasets/\u003cname\u003e/events.ndjson# append-only event log (the source of truth)\n```\n\nEvery day:\n\n1. GitHub Actions starts a job per dataset.\n2. opencode boots with the dataset's frame MCP server attached, plus the\n   frames registry for paid discovery APIs (Exa, GitHub, Hugging Face).\n3. The agent reads `prompt.md`, queries current state, fetches sources,\n   writes facts via `add_entity_with_facts` / `set_fact` / `attach_evidence`.\n4. The index is regenerated; the commit is pushed.\n\nNo bespoke pipeline code — the loop logic lives in plain markdown prompts.\n\n## Running locally\n\nYou need `OPENROUTER_API_KEY` and an agentwallet for the registry. Then:\n\n```bash\n# tick one dataset\nopencode run \"$(cat datasets/mcp-servers/prompt.md)\"\n\n# inspect any dataset\nnpx -y @frames-ag/frame query datasets/ai-models --all\n```\n\nOr attach Claude Code (it will pick up `.mcp.json` automatically) and ask:\n\n\u003e Read the schema and prompt under datasets/ai-promises and run one tick.\n\n## Adding a new dataset\n\n```bash\nnpx -y @frames-ag/frame init datasets/\u003cname\u003e\n# edit datasets/\u003cname\u003e/{schema.yml,README.md,prompt.md}\nnpx -y @frames-ag/frame init-mcp     # rewrites .mcp.json\n# add \u003cname\u003e to the matrix in .github/workflows/tick.yml\n```\n\nThat's the whole authoring surface: a schema, a scope description, and a\nloop prompt. The engine is the same.\n\n## Credits\n\n- [frames](https://github.com/frames-ag) — the protocol and CLI\n- [opencode](https://opencode.ai) — the agent harness\n- [blindspot.news](https://github.com/microchipgnu/blindspot.news) — the\n  pipeline shape that inspired this layout\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrochipgnu%2Fframes-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrochipgnu%2Fframes-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrochipgnu%2Fframes-examples/lists"}