feat(community): links-only curated index (awesome-list style) - #59
Merged
Conversation
Replace per-entry folders (meta.yaml + 4-section README + proof screenshot) with a single community/projects.yaml that generates a scannable Project | Description | Author table. Code stays in authors' repos; a maintainer verifies Opik usage at review time instead of a proof artifact. - projects.yaml: 4 required fields per entry (title, description, author, repo); both existing entries migrated - _ci rewritten: project_rules.py + check_projects.py validate the data file (required fields, http(s) repo, GitHub handle, 250-char description, no duplicates); build_index.py renders the 3-column table - entry folders, entry-template, proof/secret/hosted machinery removed - community/CONTRIBUTING.md rewritten around the one-block flow - root README/AGENTS.md updated; CODE_OF_CONDUCT.md added (awesome-ready) - workflows renamed/reworded; check step now runs check_projects.py
fschlz
marked this pull request as ready for review
July 30, 2026 13:29
A newline inside any field splits the generated markdown table row, and whitespace in the repo URL produces a broken link. Both passed validation before; now both are hard errors with tests.
LeoRoccoBreedt
approved these changes
Jul 31, 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.
What & why
Follows the Slack discussion with @abby-morgan and @LeoRoccoBreedt: community contributions become a links-only curated index (CrewAI awesome-list style). Code stays in the author's repo; contributing = adding one small YAML block.
Before: per-project folder with
meta.yaml+ 4-section README (What I built / Problem it solves / What I learned / How I used Opik) + proof screenshot.After: one block in
community/projects.yaml(title,description,author,repo) → generatedProject | Description | Authortable incommunity/README.md.Changes
community/projects.yaml— new single data source; both existing entries (Coding Agent course, Observable Job Agent) migrated; per-entry folders andentry-templateremovedcommunity/_ci/rewritten —project_rules.py+check_projects.pyvalidate the data file (required fields, http(s) repo URL, GitHub handle format, ≤250-char description, duplicate detection);build_index.pyrenders the 3-column table; 32 testscommunity/CONTRIBUTING.md)hostedconcept removed — standout projects get promoted into the verified buckets insteadREADME.md+AGENTS.mdupdated;CODE_OF_CONDUCT.mdadded (awesome-list-ready hygiene, no badge/registration — repo doesn't qualify without a rename, can revisit a separateawesome-opiklater)check_projects.py; index regen on merge unchanged in behaviorVerification
uv run pytest -q→ 32 passed;ruff check+ruff format --checkcleancheck_projects.py→ OK, 2 projects validatedbuild_index.py --check→ index up to date (regenerated table included in this PR)No tracking issue — this implements the Slack decision directly; happy to file one retroactively if wanted.