Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ change its layout or introduction.

- Eight recently pushed, active public repos, ordered by `pushed_at`. The profile
repository is excluded from this section to avoid promoting its own refreshes.
- Ten most recently published GitHub Releases across all public repos. Drafts
are excluded; prereleases are labeled. Git tags without a release do not appear.
- The latest published GitHub Release from each of the ten most recently released
projects. Drafts are excluded; prereleases are labeled. Git tags without a release
do not appear.
- Five latest posts from [the writing RSS feed](https://2389.ai/research/writing/index.xml).
- Ten public repos with the most stars, with counts, descriptions, and fork/archive
labels. Ties sort alphabetically, ignoring case first. All public repos qualify;
star counts come from the existing repository requests.
- An alphabetical, expandable directory of **every public repo**, including
forks and archived projects. Repository and release requests fetch all pages.
- An alphabetical, expandable table of **every public repo**, with names,
descriptions, and alphabetized topics. Forks and archived projects keep their
labels. Empty descriptions and topic lists display an em dash. Topics come from
the existing repository responses. Repository and release requests fetch all pages.

Dates use UTC. Descriptions come from GitHub; update a repository's description
there to change its listing. The company links and introduction live in the
Expand Down
37 changes: 37 additions & 0 deletions docs/superpowers/plans/2026-10-04-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,40 @@ entries immediately before the directory. Review caught and fixed a test that
compared star counts across separate live reads. Independent re-review and
fresh-eyes review have no remaining findings. The existing daily job refreshes
the new section without workflow changes.

## Correction: one release per project

Doctor Biz clarified that Latest releases must show at most one release per
project. The old global ten-release limit lets busy projects take multiple slots.
Sort published releases by the existing date/tie rules, select the first release
for each repository, and stop after ten distinct repositories. Keep prereleases
labeled and drafts excluded. Reuse complete release pagination and the daily job.

- [x] Write failing regression tests for duplicate-heavy input, latest published
selection, ten distinct projects, and real HTTP pages with older/newer releases.
- [x] Make the smallest renderer change; update the existing release tests to
match the corrected contract and retain date ordering/draft/prerelease coverage.
- [x] Extend live E2E to assert project uniqueness; run `scripts/check`, live E2E,
and regenerate the profile from real sources.
- [x] Review code and rendered output for delivery on
`fix/latest-release-per-project`; leave merging to Doctor Biz.

Doctor Biz also requested that the repository directory become a table with
Name, Description, and Topics columns. Keep the expandable section and complete
alphabetical public-repository list. Use each existing API response's `topics`
list, display topics comma-separated, and use an em dash for missing descriptions
or empty topics. Keep archived/fork labels in the name cell. Escape source text,
including pipes and line breaks, so data cannot break the table. Other repository
sections keep their current layout.

- [x] Test table headers, complete rows, alphabetical order, topics, empty fields,
labels and Markdown escaping; validate topics as a list of strings.
- [x] Update HTTP integration and live E2E assertions for the table; inspect
GitHub's actual table rendering before delivery.

Validation: release regressions failed before deduplication; table regressions
failed before its implementation. `scripts/check` now passes all 22 tests, Ruff,
strict mypy, and actionlint. Live CLI E2E passed against GitHub and RSS; generated
output has ten distinct release projects and 117 public repository table rows.
GitHub's Markdown renderer accepts the table. Independent review and fresh-eyes
review found no remaining issues. No workflow changes or new API requests.
1 change: 1 addition & 0 deletions gotchas.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
- GitHub organization is `2389-research`; the company is **2389 Research**, not 2398. The company website is `https://2389.ai`.
- Research posts come from `https://2389.ai/research/writing/index.xml`. The parent research feed was empty when checked on 2026-10-04.
- “Tagged releases” means published GitHub Releases, confirmed by Doctor Biz. Draft releases and private repositories must never appear.
- Doctor Biz wants only the latest published release per project, then the ten newest projects by release date. Deduplicate before applying the ten-entry limit so one busy project cannot crowd out the others.
- The org already exceeds GitHub's 100-repo page size. Fetch every page before generating the directory.
- The top-starred section uses `stargazers_count` from the same repository responses. Star counts can change between live API reads; exact ranking expectations belong in stable fixture tests.
Loading
Loading