Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
2097def
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
063b7c2
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
4674d64
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
8c692fb
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
a53b196
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
8c0ef3c
chore(data): sync lessons.json + refresh feed
Jul 23, 2026
27f7c49
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
f0cf662
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
9903215
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
15899c3
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
410fe38
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
6128b10
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
0a0fc42
chore(data): sync lessons.json + refresh feed
Jul 24, 2026
f914a3f
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
1b3d16e
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
b444d22
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
ed6371a
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
777bab2
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
03063f4
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
faf1c53
chore(data): sync lessons.json + refresh feed
Jul 25, 2026
d01e525
chore(data): sync lessons.json + refresh feed
Jul 26, 2026
14964a9
chore(data): sync lessons.json + refresh feed
Jul 26, 2026
6b9168f
chore(data): sync lessons.json + refresh feed
Jul 26, 2026
a629b33
chore(data): sync lessons.json + refresh feed
Jul 26, 2026
31d0224
chore(data): sync lessons.json + refresh feed
Jul 26, 2026
a6cf1e8
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
21421d9
fix(scripts): two-layer lesson filtering — coarse keyword + LLM gate
zsxh1990 Jul 27, 2026
62bb99a
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
b97ea66
fix(scripts): add keyword search to heartbeat pipeline
zsxh1990 Jul 27, 2026
2032893
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
1535585
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
253aa13
feat(scripts): add --upstream flag to push directly to Ikalus1988/Mis…
zsxh1990 Jul 27, 2026
2b8ffb5
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
9914d5c
docs: 3 new lessons from session findings
zsxh1990 Jul 27, 2026
1830dd9
chore: auto-update lessons.json
actions-user Jul 27, 2026
1576eb2
fix(scripts): remove --upstream flag (zsxh1990 lacks Ikalus1988 push …
zsxh1990 Jul 27, 2026
5ca4285
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
74a1f8f
fix(scripts): simplify git ops — always fork→PR
zsxh1990 Jul 27, 2026
d649fb9
fix(scripts): add fact-check gate — reject fabricated content
zsxh1990 Jul 27, 2026
432e9e3
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
eeb27f3
fix(scripts): increase candidate buffer to 5x target
zsxh1990 Jul 27, 2026
38c63a1
fix(scripts): increase content limits for extraction and fact-check
zsxh1990 Jul 27, 2026
6e2a5c5
fix(scripts): fact-check ignores metadata fields
zsxh1990 Jul 27, 2026
ba6632e
chore: update leaderboard snapshot [skip ci]
Jul 27, 2026
5d4d025
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
86d06bf
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
84d5d36
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
5a6d11d
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
10c5d56
chore(data): sync lessons.json + refresh feed
Jul 27, 2026
77461bf
feat(lessons): 1 high-quality lessons from heartbeat pipeline
zsxh1990 Jul 28, 2026
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
94 changes: 55 additions & 39 deletions data/leaderboard.json
Original file line number Diff line number Diff line change
@@ -1,134 +1,150 @@
[
{
"login": "zsxh1990",
"score": 22.75
"score": 24.6
},
{
"login": "uncledad96-glitch",
"score": 15.26
},
{
"login": "2lll5",
"score": 6.15
"score": 5.02
},
{
"login": "solaris",
"score": 3.44
"score": 3.05
},
{
"login": "lb1192176991-lab",
"score": 1.87
},
{
"login": "zeroknowledge0x",
"score": 1.82
"score": 1.55
},
{
"login": "sparshgarg999",
"score": 1.42
"score": 1.26
},
{
"login": "namdamdoi68-oss",
"score": 0.97
},
{
"login": "ninghuagui-debug",
"score": 0.94
},
{
"login": "yh-liao-07",
"score": 1.0
"score": 0.93
},
{
"login": "abhiavi",
"score": 1.0
"score": 0.93
},
{
"login": "ringotokens-commits",
"score": 0.99
"score": 0.93
},
{
"login": "ivegotahunnitonit",
"score": 0.99
"score": 0.93
},
{
"login": "root",
"score": 0.99
"score": 0.62
},
{
"login": "lushan888",
"score": 0.95
"score": 0.58
},
{
"login": "chiranjeevi7777",
"score": 0.95
"score": 0.58
},
{
"login": "zhangjianming7051",
"score": 0.95
"score": 0.58
},
{
"login": "xkes101116-hub",
"score": 0.94
"score": 0.58
},
{
"login": "foxymantou",
"score": 0.94
"score": 0.58
},
{
"login": "votienduong2208",
"score": 0.65
"score": 0.56
},
{
"login": "syzygys",
"score": 0.59
"score": 0.53
},
{
"login": "jhon12091986",
"score": 0.59
"score": 0.53
},
{
"login": "lovewave02",
"score": 0.58
"score": 0.52
},
{
"login": "gothundercats",
"score": 0.56
"score": 0.51
},
{
"login": "zqleslie",
"score": 0.55
"score": 0.49
},
{
"login": "andrianbalanesq",
"score": 0.52
"score": 0.48
},
{
"login": "cyprerask",
"score": 0.51
},
{
"login": "rohitmulani63-ops",
"score": 0.47
},
{
"login": "skyjames777",
"score": 0.47
"score": 0.46
},
{
"login": "doview1",
"score": 0.33
"score": 0.28
},
{
"login": "suresh chouksey",
"score": 0.33
"score": 0.28
},
{
"login": "iccccccccccccc",
"score": 0.33
"score": 0.28
},
{
"login": "sagarmaurya64-ai",
"score": 0.32
"score": 0.27
},
{
"login": "rohitmulani63-ops",
"score": 0.23
},
{
"login": "skyjames777",
"score": 0.23
},
{
"login": "pian0",
"score": 0.2
"score": 0.17
},
{
"login": "qi574",
"score": 0.16
"score": 0.14
},
{
"login": "cuongwf1711",
"score": 0.16
"score": 0.14
},
{
"login": "lqkhanh295",
"score": 0.13
"score": 0.11
}
]
66 changes: 66 additions & 0 deletions data/lessons.json
Original file line number Diff line number Diff line change
Expand Up @@ -1945,6 +1945,28 @@
"status": "active",
"verified": false
},
{
"id": "glama-introspection-gap",
"title": "Glama Introspection Gap — Build Success ≠ Tools Registered",
"domain": "devops",
"tags": [
"glama",
"mcp",
"introspection",
"tools",
"registry"
],
"summary": "After successfully building an MCP server on Glama, the tools don't appear in the Glama API or dashboard. Build success ≠ tools registered — they are separate a…",
"preview": "## Problem\n\nAfter successfully building an MCP server on Glama, the tools don't appear in the Glama API or dashboard. Build success ≠ tools registered — they are separate async processes.\n\n## Root Cause\n\nGlama's pipeline has two distinct steps:\n1. **Build** — Docker image creation (synchronous, returns immediately)\n2. **Introspection** — Runs the MCP server and calls `tools/list` (async, may take minutes to hours)\n\nThe build step can succeed while introspection fails silently. Common causes:\n- MCP server starts but doesn't respond to `tools/list` request\n- Server crashes during introspection\n- glama.json format issues (tools not detected)\n- Network timeout during introspection\n\n## Detection\n\n```bash\n# Check if tools are registered\ncurl -s \"https://glama.ai/api/mcp/v1/servers/OWNER/REPO\" | python3 -c \"\nimport json, sys\ndata = json.load(sys.stdin)\nprint(f'Tools: {len(data.get(\\\"tools\\\", []))}')\n\"\n```\n\nIf `tools: 0` but build succeeded, introspection failed.\n\n## Fix Action\n\n1. **Wait** — introspection is async, may take hours\n2. **Sync Server** — trigger Glama to re-read the repo\n3. **Rebuild** — force fresh introspection\n4. **Check glama.json** — must be minimal format (`$schema` + `maintainers` only)\n5. **Check Dockerfile** — ensure MCP server starts and responds to `initialize` request\n\n## Key Insight\n\n**glama.json is NOT for tool definitions.** Glama discovers tools via MCP introspection (calling `tools/list`), not from glama.json. The glama.json should only contain:\n```json\n{\n \"$schema\": \"https://glama.ai/mcp/schemas/server.json\",\n \"maintainers\": [\"username\"]\n}\n```\n\nComplex tool definitions in glama.json are ignored by Glama's introspection system.",
"url": "lessons/contrib/glama-introspection-gap.md",
"created": "2026-07-22",
"updated": "",
"validity_period_days": 365,
"environment_version": "",
"confidence": 0.5,
"status": "published",
"verified": false
},
{
"id": "gpt-sovits-hubert-16khz",
"title": "gpt sovits hubert 16khz",
Expand Down Expand Up @@ -2649,6 +2671,28 @@
"status": "active",
"verified": true
},
{
"id": "merge-probability-calibration",
"title": "Merge Probability Calibration — Honest Estimation vs Overfitting",
"domain": "devops",
"tags": [
"prediction",
"calibration",
"merge-rate",
"a-b-test",
"coach"
],
"summary": "PR coaches that predict merge probability often overfit to training data or give misleadingly precise estimates. A 70% accuracy claim may not generalize to new …",
"preview": "## Problem\n\nPR coaches that predict merge probability often overfit to training data or give misleadingly precise estimates. A 70% accuracy claim may not generalize to new repos or PR types.\n\n## Root Cause\n\n1. **Base rate trap** — Most repos have low external merge rates (20-30%). Predicting \"medium risk\" for everything gives 70%+ accuracy but zero discrimination.\n\n2. **Signal confusion** — Signals like \"needs_preflight\" or \"large_repo\" are risk markers, not success predictors. A PR can have many negative signals and still merge if the maintainer wants it.\n\n3. **Content blindness** — Current coaches analyze metadata (title, body, files_changed) but not actual diff content. Two PRs with identical metadata can have completely different merge outcomes.\n\n## A/B Test Results (445 cases)\n\n| Metric | Value |\n|--------|-------|\n| Merged PRs mean probability | 0.32 |\n| Closed PRs mean probability | 0.30 |\n| Gap | +0.02 |\n| Discrimination | YES (but limited) |\n\n**Conclusion:** Merge probability can't be more accurate than the repo's base merge rate without understanding PR content quality.\n\n## Fix Action\n\n1. **Use repo merge rate as base** — the most honest starting point\n2. **Only adjust for discriminating signals** — merge_conflict (×0.3), duplicate (×0.1), maintainer_internal (×0.05)\n3. **Don't double-count** — signals already affect tier, don't also affect probability\n4. **Be transparent** — tell users \"this repo has 20% merge rate, your PR is slightly better than average\"\n\n## Prevention\n\n- Always A/B test predictions against actual outcomes\n- Use LORO (Leave-One-Repo-Out) validation to detect overfitting\n- Report confidence intervals, not point estimates\n- Accept that some uncertainty is irreducible (depends on maintainer mood, timing, etc.)",
"url": "lessons/contrib/merge-probability-calibration.md",
"created": "2026-07-22",
"updated": "",
"validity_period_days": 365,
"environment_version": "",
"confidence": 0.5,
"status": "published",
"verified": false
},
{
"id": "misakanet-heal-engine-bootstrap-workflow",
"title": "MisakaNet --heal Engine Bootstrap Workflow",
Expand Down Expand Up @@ -3348,6 +3392,28 @@
"status": "published",
"verified": true
},
{
"id": "restricted-interactions-repos",
"title": "Restricted Interactions Repos — External PRs Not Accepted",
"domain": "devops",
"tags": [
"github",
"restricted",
"external-pr",
"contribution",
"gatekeeping"
],
"summary": "Some large open-source repos have GitHub \"restricted interactions\" enabled, which prevents non-collaborators from creating PRs, commenting, or even viewing cert…",
"preview": "## Problem\n\nSome large open-source repos have GitHub \"restricted interactions\" enabled, which prevents non-collaborators from creating PRs, commenting, or even viewing certain features. Contributors waste time preparing PRs that can never be submitted.\n\n## Root Cause\n\nGitHub allows repo admins to restrict interactions to collaborators only. This is separate from the standard fork-and-PR workflow. When enabled:\n- Non-collaborators cannot create PRs\n- Non-collaborators cannot comment on issues/PRs\n- The error message is generic: \"Interactions on this repository have been restricted to collaborators only\"\n\n## Detection\n\nBefore preparing a PR, check:\n```bash\n# Check if you can create a PR\ngh pr create --repo org/repo --title \"test\" --body \"test\" 2>&1 | grep \"restricted\"\n\n# Check if you can comment\ngh issue comment 1 --repo org/repo --body \"test\" 2>&1 | grep \"restricted\"\n```\n\n## Known Repos with Restricted Interactions\n\n- `encode/httpx` — Python HTTP library, no external PRs accepted\n- Some Grafana Labs repos — require signed commits + restricted interactions\n\n## Fix Action\n\n1. Check repo interaction permissions before investing time\n2. If restricted, look for alternative contribution channels (discussions, docs)\n3. If no alternatives, move to a different repo\n\n## Prevention\n\nAlways test repo permissions before preparing a PR:\n```bash\n# Quick permission check\ngh api repos/org/repo --jq '.permissions'\n```\n\nIf `pull` is false or interactions are restricted, don't invest time in PR preparation.",
"url": "lessons/contrib/restricted-interactions-repos.md",
"created": "2026-07-22",
"updated": "",
"validity_period_days": 365,
"environment_version": "",
"confidence": 0.5,
"status": "published",
"verified": false
},
{
"id": "sag-lite-data-quality-cleaning",
"title": "sag-lite-data-quality-cleaning",
Expand Down
Loading
Loading