Repository navigation
feat: one-line hook per project in ranking tables (full descriptions kept in docs/DETAILS) - #12
Conversation
…iptions kept on docs/DETAILS*.md
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bfdb271654
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| missing = [it["name"] for it in items if it.get("description") | ||
| and not all(nci.get_hook(LIB, it["name"], it["description"], l) for l in LANG5)] | ||
| self.assertEqual(missing, [], "run: python3 tools/i18n_pipeline.py --hooks") |
There was a problem hiding this comment.
Allow missing hooks when the optional model stage is skipped
When a newly discovered repository lacks a cached hook and Cursor credentials are absent, a model call fails, or a reply is rejected, the pipeline deliberately keeps the original description or translation. This assertion nevertheless fails verification for that supported fallback state. In .github/workflows/daily-update.yml, the Verify step runs before Commit and push, so a single missing hook prevents the entire daily star/ranking update from being published. Make hook gaps informational, as the docstring promises, and test fallback behavior without requiring complete model-generated coverage of live data.
Useful? React with 👍 / 👎.
| for key, value in old.items(): | ||
| if key != "seen": # `seen` is only the last-used day | ||
| self.assertEqual(new[key], value, (name, h, key)) |
There was a problem hiding this comment.
Test description preservation without freezing production copy
After any accepted polish changes an existing project's description or a cached newcomer translation, these baseline comparisons fail even though the hook-writing stage preserved the descriptions correctly. i18n_pipeline._apply() explicitly updates those fields, and tools/polish_local.sh runs verification immediately afterward, so legitimate polish results can no longer pass the script's verification/commit path. The related DETAILS assertions also require obsolete wording to remain forever. Test preservation by comparing before and after a hook-writing operation on fixtures rather than requiring mutable production data and generated pages to match a permanent pre-hook snapshot.
Useful? React with 👍 / 👎.
What
Ranking tables now show one short hook per project instead of the full description.
tools/hooks.py).hooknext todescindata/projects.json, andhookinside eachdata/translation_library.jsonentry (same repo + source-hash key). No long description and no translation was changed, deleted or re-translated; old library entries still match for reuse.docs/DETAILS*.md(one page per language, linked from the README anddocs/FACTS.md).hooksstage intools/i18n_pipeline.py(--hooks, also in the default run; backend = translate backend so CI does it too,polish_local.shusesagy).HOOK_PROMPTembedsHOOK_RULE; replies breaking the length / hype /!/…/ new-number guard are rejected and the row falls back to the translation. Suspected cracked/pirated repos get a flat literal label.tests/test_hooks.py(per-language length test over every stored hook, guard unit tests, prompt contains the rule, old-entry survival vs frozentests/fixtures/pre_hook_baseline.json, DETAILS pages carry every old text, tables show the hook not the long text, hooks never touched by polish).Before → after (zh-Hans / en)
morluto/rea
cloudflare/security-audit-skill
stablyai/orca
DenisSergeevitch/ex-ussr-kinship-research
shipwords-dev/shipwords
Uncertain / for review
复刻/clonein themorluto/reahook follows the wording the user suggested; the source text itself only says AI explains what a program does via Ghidra.