feat(ci): add publish-to-main sync workflow (#161)

* feat(ci): add publish-to-main sync workflow (#157) Automated workflow that syncs generated data and squad learnings from publish back to main after each successful crawl-and-publish run. Scoped to data paths only — never carries code changes. Closes #157 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log CI fix session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(ci): harden sync-publish-to-main workflow - Propagate deletions: wipe target generated dirs before checkout - Fail fast for required paths; only .squad files use || true - Make grep-based agent history discovery tolerant of empty matches - Add concurrency group to prevent overlapping force-pushes - Sync .squad/skills/ in addition to history and decisions - Document publish as authoritative for synced paths Addresses Copilot reviewer feedback on PR #161. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Juan Manuel Servera committed May 25, 2026 at 15:47 UTC 898ca3079b8363485baa78ca09c0dd6937639afb
3 files changed +179 -23
.github/workflows/sync-publish-to-main.yml new
+127
@@ -0,0 +1,127 @@
1 +name: Sync publish data to main
2 +
3 +on:
4 + workflow_run:
5 + workflows: ["Crawl and publish weekly data"]
6 + types: [completed]
7 + branches: [main]
8 + workflow_dispatch:
9 +
10 +# Prevent overlapping force-pushes to sync/publish-to-main
11 +concurrency:
12 + group: sync-publish-to-main
13 + cancel-in-progress: false
14 +
15 +permissions:
16 + contents: write
17 + pull-requests: write
18 +
19 +jobs:
20 + sync:
21 + runs-on: ubuntu-latest
22 + if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
23 + steps:
24 + - name: Check out main
25 + uses: actions/checkout@v4
26 + with:
27 + ref: main
28 + fetch-depth: 0
29 +
30 + - name: Sync data from publish
31 + env:
32 + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33 + SYNC_BRANCH: sync/publish-to-main
34 + run: |
35 + set -euo pipefail
36 + git config user.name "github-actions[bot]"
37 + git config user.email "github-actions[bot]@users.noreply.github.com"
38 +
39 + # Fetch publish
40 + git fetch origin publish
41 +
42 + # Create or reset sync branch from main
43 + git checkout -B "$SYNC_BRANCH" origin/main
44 +
45 + # Wipe target generated dirs so deletions on publish propagate to main
46 + rm -rf data/raw data/analyzed data/metrics content/weekly content/monthly content/yearly
47 +
48 + # REQUIRED — these must exist on publish; fail loudly if not
49 + git checkout origin/publish -- \
50 + data/raw/ \
51 + data/analyzed/ \
52 + data/metrics/ \
53 + content/weekly/ \
54 + content/monthly/ \
55 + content/yearly/
56 +
57 + # OPTIONAL — squad state; tolerant of missing files
58 + git checkout origin/publish -- .squad/run-counter.txt 2>/dev/null || true
59 + git checkout origin/publish -- .squad/decisions.md 2>/dev/null || true
60 +
61 + # Agent history files (per-agent learnings)
62 + git ls-tree -r --name-only origin/publish -- .squad/agents/ 2>/dev/null \
63 + | { grep 'history.md$' || true; } \
64 + | while IFS= read -r hist; do
65 + [ -n "$hist" ] && git checkout origin/publish -- "$hist" 2>/dev/null || true
66 + done
67 +
68 + # Skills (team-level reusable patterns)
69 + git ls-tree -r --name-only origin/publish -- .squad/skills/ 2>/dev/null \
70 + | { grep -E '\.md$' || true; } \
71 + | while IFS= read -r skill; do
72 + [ -n "$skill" ] && git checkout origin/publish -- "$skill" 2>/dev/null || true
73 + done
74 +
75 + # Check if there are any changes
76 + if git diff --cached --quiet && git diff --quiet; then
77 + echo "No changes to sync."
78 + exit 0
79 + fi
80 +
81 + git add -A
82 + if git diff --cached --quiet; then
83 + echo "No changes to sync after staging."
84 + exit 0
85 + fi
86 +
87 + git commit -m "sync: publish data → main
88 +
89 + Automated sync of crawl data, analysis, content, and squad learnings
90 + from the publish branch."
91 +
92 + git push -f origin "$SYNC_BRANCH"
93 +
94 + # Create or update PR
95 + EXISTING_PR=$(gh pr list --head "$SYNC_BRANCH" --base main --json number --jq '.[0].number // empty')
96 + if [ -n "$EXISTING_PR" ]; then
97 + echo "Updated existing PR #${EXISTING_PR}"
98 + else
99 + gh pr create \
100 + --base main \
101 + --head "$SYNC_BRANCH" \
102 + --title "sync: publish data → main" \
103 + --body "Automated sync of generated content subtrees and durable squad learnings from the publish branch to main.
104 +
105 + This PR keeps main up-to-date with generated data so that squad learnings and content are accessible from the default branch.
106 +
107 + **Synced paths (required — workflow fails if missing on publish):**
108 + - \`data/raw/\` — raw crawl data
109 + - \`data/analyzed/\` — weekly analysis summaries
110 + - \`data/metrics/\` — token usage metrics
111 + - \`content/weekly/\`, \`content/monthly/\`, \`content/yearly/\` — generated Hugo pages
112 +
113 + **Synced from .squad/ (optional — tolerant of missing):**
114 + - \`.squad/agents/*/history.md\` — agent learnings
115 + - \`.squad/decisions.md\` — team decisions
116 + - \`.squad/skills/**/*.md\` — reusable patterns
117 + - \`.squad/run-counter.txt\` — run counter
118 +
119 + **Explicitly NOT synced** (session-local noise): \`.squad/log/\`, \`.squad/orchestration-log/\`, \`.squad/decisions/inbox/\`
120 +
121 + **Notes:**
122 + - Publish is authoritative for synced paths. Hand-edits on main to these paths WILL be overwritten.
123 + - Deletions on publish propagate to main (target dirs are wiped before checkout).
124 +
125 + Safe to merge — contains only generated data, no code changes." \
126 + --label "squad"
127 + fi
.squad/agents/bender/history.md
+1
@@ -11,3 +11,4 @@
11 - Analysis execution should prefer Copilot CLI first, then fall back to GitHub Models using the same rendered prompt so output contracts stay aligned.
12 - Reviewer gates should validate the analyzer contract, not just artifact existence.
13 - New pipeline stages should follow the `ci-data-source-integration-pattern` skill: wire the script into CI immediately, document the handoff, and test the producer/consumer schema at the boundary.
14 +- CI overwrite issues arise from timing conflicts between scheduled tasks and manual sync operations; use workflow gates and lockfiles to prevent concurrent writes to shared state.
data/analyzed/2026-W21-summary.md
+51 -23
@@ -1,43 +1,71 @@
1 ---
2 -title: "Week 21, 2026 Analysis"
3 -date: 2026-05-18T12:07:20.778+02:00
2 +title: "Agent Skills Go Mainstream While Star Farmers Game the Charts"
3 +date: 2026-05-21T12:40:11Z
4 week: "2026-W21"
5 year: 2026
6 -tags: [ai, agents, developer-tooling, security, open-source]
6 +tags: [ai-agents, agent-skills, mcp, small-models, coding-agents, exploit-churn, piracy-spam]
7 categories: [weekly]
8 -repos_featured: 424
9 -stars_tracked: 20204141
10 -top_repo: "vercel-labs/zero"
11 -quality_score: 76
12 -summary: "Week 21 shows real demand for agent infrastructure, but the trend data still lacks the baseline needed to separate momentum from popularity."
8 +repos_featured: 17
9 +stars_tracked: 707652
10 +top_repo: "vercel-labs/zerolang"
11 +quality_score: 72
12 +summary: "W21 2026 is defined by two opposing forces: a maturing agent infrastructure stack — agent skills, MCP adoption, and efficient small models — and a coordinated wave of piracy, exploit, and SEO-farming repos that pollutes trending charts and makes signal extraction harder than it should be."
13 ---
14
15 -## Notable New Repositories
15 +## This Week's Trends
16
17 -The strongest new-repo signal is not raw volume but coherence. [vercel-labs/zero](https://github.com/vercel-labs/zero) anchors the week because it reads like a serious attempt to simplify agent-facing infrastructure rather than another thin wrapper. Around it, [DenisSergeevitch/agents-best-practices](https://github.com/DenisSergeevitch/agents-best-practices), [Kappaemme-git/codex-complexity-optimizer](https://github.com/Kappaemme-git/codex-complexity-optimizer), [gi-dellav/zerostack](https://github.com/gi-dellav/zerostack), and [openclaw/clawpatch](https://github.com/openclaw/clawpatch) all point in the same direction: teams want safer automation, lighter execution layers, and better operating discipline for coding agents. That cluster matters more than any single launch because it suggests the market is already moving from “agents are interesting” to “agents need tooling that survives contact with real work.”
17 +**Agent Skills as the New Package Manager.** The clearest durable movement this week is the consolidation of "agent skills" — structured task instructions and harness configurations for AI coding agents — into an emerging distribution layer. [DenisSergeevitch/agents-best-practices](https://github.com/DenisSergeevitch/agents-best-practices) (921★) provides provider-neutral skill definitions spanning Codex, Claude Code, and agentic harnesses. [Kappaemme-git/codex-complexity-optimizer](https://github.com/Kappaemme-git/codex-complexity-optimizer) (808★) ships a Codex skill for codebase analysis. [K1XE/InterviewForge](https://github.com/K1XE/InterviewForge) (52★) adds a local-first CLI with a Codex skill for interview review. Together with established repos like [affaan-m/ECC](https://github.com/affaan-m/ECC) (188K★) and [ruvnet/ruflo](https://github.com/ruvnet/ruflo) (54K★), the picture is consistent: an ecosystem of composable agent capabilities is forming, and it's doing so faster than any press outlet is tracking it. The `claude-code` topic appeared on 17 repos this week; `ai-agents` on 20.
18
19 -Outside that lane, [facebookresearch/vggt-omega](https://github.com/facebookresearch/vggt-omega) adds a more credible research signal than most of the week’s AI launches, and [chrisbanes/skills](https://github.com/chrisbanes/skills) hints that reusable skill packs may become a durable packaging pattern. The key takeaway is that the best new repos are the ones reducing workflow friction, not the ones making the loudest promises.
19 +**A Language Born for the Agent Runtime.** [vercel-labs/zerolang](https://github.com/vercel-labs/zerolang) (4,076★ in its first week, Apache-2.0, written in C) is the most structurally significant new repo this week. Described as "the programming language for agents," it signals that agent-native compute is entering the language-design layer — a shift from tooling agents on top of existing languages to designing languages around agentic execution semantics. Too early to call it a platform, but early enough to watch closely.
20
21 -## Trending This Week
21 +**Small Models Racing in Public.** Three new repos this week track the efficient model front: [Doorman11991/smallcode](https://github.com/Doorman11991/smallcode) (916★) claims 87% benchmark parity with a 4B-active-parameter model; [sapientinc/HRM-Text](https://github.com/sapientinc/HRM-Text) (590★) is a 1B text model based on the HRM (Hierarchical Reasoning Model) architecture with latent-space reasoning; [bytedance/Lance](https://github.com/bytedance/Lance) (586★) is a 3B-active-parameter unified multimodal model for image and video. None of these are marginal experiments — they represent sustained commercial-grade investment in smaller, deployable models. The "frontier at 4B" claim from smallcode is the kind of benchmark pressure that compounds over time.
22
23 -The trending set is still useful, but this week it is not a true stars-gained leaderboard. Every sampled `trending_repos` entry lacks a usable `stars_gained` value, so the list behaves more like “large repositories that were active during the crawl window” than a clean momentum table. Even with that caveat, the concentration around [freeCodeCamp/freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp), [facebook/react](https://github.com/facebook/react), [n8n-io/n8n](https://github.com/n8n-io/n8n), [ollama/ollama](https://github.com/ollama/ollama), [huggingface/transformers](https://github.com/huggingface/transformers), [langgenius/dify](https://github.com/langgenius/dify), [firecrawl/firecrawl](https://github.com/firecrawl/firecrawl), and [anthropics/claude-code](https://github.com/anthropics/claude-code) shows that AI workflow platforms, developer productivity infrastructure, and agent-adjacent tooling remain where attention is pooling.
23 +**MCP Becomes Background Infrastructure.** Model Context Protocol is no longer a trend to announce — it's quietly becoming a tagging convention and integration requirement. [n8n-io/n8n](https://github.com/n8n-io/n8n) (189K★) carries `mcp`, `mcp-client`, and `mcp-server` tags; [upstash/context7](https://github.com/upstash/context7) (56K★) and [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) (86K★) continue to accumulate. The `mcp` topic appeared on 15 repos this week. The protocol is past the "will it stick?" question.
24
25 -## Trend Analysis
25 +**Automated Code Review Tooling Is Quietly Growing.** [openclaw/clawpatch](https://github.com/openclaw/clawpatch) (610★) — "Review code. Patch bugs. Land PRs." — is a lightweight but telling data point. Combined with [evilsocket/audit](https://github.com/evilsocket/audit) (384★, an 8-stage vulnerability-discovery agent) and the broader [anthropics/claude-code](https://github.com/anthropics/claude-code) ecosystem (125K★), developer-facing automation for the review and security audit loop is becoming a recognizable category.
26
27 -### Signal
27 +## Where Industry Meets Code
28
29 -The durable signal is the shift from general AI enthusiasm toward operational tooling. The top shared topics — **python**, **ai**, **llm**, **typescript**, **nodejs**, and **javascript** — reinforce that the center of gravity is still developer-facing AI, but the better projects are focused on workflow reliability, packaging, and execution discipline. This is a healthier pattern than pure demo-driven hype because it implies the ecosystem is starting to care about how agent systems are run, maintained, and trusted.
29 +TechCrunch's twelve articles this week were almost entirely about money: Nvidia's record quarter and Jensen Huang's claimed $200B new market, Anthropic paying xAI $1.25B/month for compute, Sam Altman's YC offer, and a series of funding rounds. The most technically substantive piece — OpenAI claiming to solve an 80-year-old math problem — covered a reasoning model benchmark, not a GitHub project. No TechCrunch article this week directly covered a project visible in GitHub's new-repo chart.
30
31 -### Noise
31 +This is a sharp divergence. The correlation data confirms it: most "press-correlated" repos in this week's crawl matched on org name (Microsoft articles about spam and carbon removal dragged in `microsoft/vscode`, `microsoft/playwright`, etc.), not on actual technical coverage. The real correlation confidence for any specific GitHub project receiving genuine press attention this week is effectively zero.
32
33 -The weak signal is the amount of off-mission and exploit-heavy material that still clears the crawler. Security appears often, but too much of that volume is bypass, exploit, or cheat-oriented rather than defensive engineering. There is also obvious repetition in the agent category: many launches gesture at automation without much evidence of differentiation. That means the week is loud, but not all of that loudness deserves equal editorial weight.
33 +The divergence is not a failure of press coverage — it's a structural mismatch. Press is covering the compute and capital layer of the AI stack. Developers are building the operational and tooling layer: skills, harnesses, agent CLIs, review bots, and small runnable models. These two layers are both real and both important, but they are currently operating with almost no shared vocabulary in media. The story the press is missing is that [vercel-labs/zerolang](https://github.com/vercel-labs/zerolang), [DenisSergeevitch/agents-best-practices](https://github.com/DenisSergeevitch/agents-best-practices), and [affaan-m/ECC](https://github.com/affaan-m/ECC) represent genuine language-and-tooling infrastructure work happening at the edge of the AI platform layer — without a funding round to make it newsworthy.
34
35 -## What's Missing
35 +## Signal & Noise
36
37 -### Gaps
37 +The signal this week is concentrated and credible. Zerolang is the most structurally interesting new repo — a language-level intervention in the agent stack from a credible team (Vercel Labs), written in C, Apache-licensed, with 4K stars in its first week and zero forks inflated by bots. The agent skills cluster — agents-best-practices, codex-complexity-optimizer, InterviewForge, ECC, ruflo — is real infrastructure work, even if individual repos vary in depth. HRM-Text and Lance represent genuine model research with implementation. [nkzw-tech/codiff](https://github.com/nkzw-tech/codiff) (416★) is small and quiet but fills an actual gap: a fast local diff viewer. These projects solve specific problems with specific implementations.
38
39 -The biggest missing piece is trustworthy momentum data. Without historical star snapshots, the analyzer cannot distinguish what is newly accelerating from what is simply already famous. The second gap is stronger quality filtering: exploit repositories, cheat tooling, and other off-mission projects still distort the weekly picture. The third is ecosystem balance. There is plenty of heat around AI builders, but much less visible energy around defensive security tooling, testing infrastructure for agents, and pragmatic maintenance tools that help teams run these systems safely at scale.
39 +The noise is louder. Approximately 15-20 of the new repos in this week's crawl are coordinated piracy and exploit distribution: Roblox script executors, Pokemon ROM "emulators" with keyword-stuffed descriptions, Steam unlockers, GTA mod menus, Hydra game launchers, Minecraft offline launchers, Fortnite external cheats. The pattern is consistent — 400-630 stars, zero forks, TypeScript or C++ language tags, MIT license, and multi-paragraph SEO descriptions stuffed with download keywords. These are not organic projects; they are star-farmed SEO repositories using GitHub as a distribution surface. [Flizorules05/ROM-MGBA-Pokemon-Emulator-PC](https://github.com/Flizoreles05/ROM-MGBA-Pokemon-Emulator-PC), [Sunislazi/rbxfpsunlocker-boost-More-240FPS](https://github.com/Sunislazi/rbxfpsunlocker-boost-More-240FPS), and [haiddrrs/Steam-Tools](https://github.com/haiddrrs/Steam-Tools) are representative. They consume crawler bandwidth, inflate star counts, and make trend detection harder. This is not a new problem, but its scale this week is notable. The filter summary in the raw crawl caught some (`low_signal_keyword: 6`, `low_signal_topic: 1` for new repos) but the majority passed through. Future analysis should treat the zero-forks / keyword-stuffed-description / 400-650★ cluster as a near-certain spam signal.
40
41 -## Conclusion
41 +## Blind Spots
42
43 -Week 21 matters because it shows where the GitHub conversation is maturing: away from generic AI excitement and toward tooling that makes agent workflows usable. But it also shows why the analyzer contract has to be strict. Until the pipeline has real trend baselines and better filtering, the right editorial stance is confident about the signal, skeptical about the noise, and explicit about the gaps.
43 +Agent observability is the most conspicuous absence this week. There is no new infrastructure for tracing, logging, cost attribution, or debugging multi-agent workflows at production scale. This is not a minor gap — as organizations deploy agent harnesses built on ECC, ruflo, and Claude Code, they will immediately face the problem of understanding what their agents did and why. The absence is doubly notable given that the MCP standard is mature enough to have 15 tagged repos this week; the tooling layer for monitoring MCP-connected agents does not exist in any visible form.
44 +
45 +Agent security beyond audit scripts is also missing. [evilsocket/audit](https://github.com/evilsocket/audit) is a promising data point, but the broader category — prompt injection defenses, agentic attack surface analysis, sandbox enforcement for agent-executed code — is invisible in new repos. Given that Anthropic's compute deal and OpenAI's YC offer signal accelerating real-world deployment, the gap between deployed agent capability and defensive tooling is widening. Privacy-defensive tooling ([stephenlthorn/auto-identity-remove](https://github.com/stephenlthorn/auto-identity-remove), 572★) is growing quietly, but it addresses a narrower problem than the agentic security gap requires.
46 +
47 +## The Week Ahead
48 +
49 +Watch [vercel-labs/zerolang](https://github.com/vercel-labs/zerolang) — the next two weeks will reveal whether this is a genuine language-design effort with a community trajectory or an early-stage release waiting for a blog post. The agent skills category is in active formation: expect more structured skill libraries, aggregator repos, and skill registries to emerge as the pattern matures. The small-model efficiency race ([Doorman11991/smallcode](https://github.com/Doorman11991/smallcode), [sapientinc/HRM-Text](https://github.com/sapientinc/HRM-Text)) will sharpen quickly — benchmark competition at 4B-active parameters is compressing. If MCP adoption continues at its current pace, expect to see the first credible observability layer for MCP-connected agents within the next month.
50 +
51 +## Key References
52 +
53 +### Notable Projects
54 +
55 +- [vercel-labs/zerolang](https://github.com/vercel-labs/zerolang) — A programming language designed for agent runtimes; the most structurally novel new repo this week, representing a language-level intervention in the agent stack.
56 +- [DenisSergeevitch/agents-best-practices](https://github.com/DenisSergeevitch/agents-best-practices) — Provider-neutral agent skill definitions for Codex, Claude Code, and agentic harnesses; the clearest signal of agent skills becoming a distributable artifact.
57 +- [Doorman11991/smallcode](https://github.com/Doorman11991/smallcode) — AI coding agent claiming 87% benchmark parity at 4B-active parameters; represents the growing claim that frontier behavior is achievable at small model size.
58 +- [sapientinc/HRM-Text](https://github.com/sapientinc/HRM-Text) — 1B text model on HRM architecture with latent-space reasoning; serious research implementation, not a demo wrapper.
59 +- [bytedance/Lance](https://github.com/bytedance/Lance) — ByteDance's 3B-active multimodal model for image, video understanding and generation; unified architecture at deployable scale.
60 +- [affaan-m/ECC](https://github.com/affaan-m/ECC) — Agent harness optimization system for Claude Code, Codex, and beyond; one of the most-starred practical agent skill frameworks in active development.
61 +- [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) — The MCP server reference collection; its 86K stars and continued topic proliferation signal protocol adoption crossing an inflection point.
62 +- [openclaw/clawpatch](https://github.com/openclaw/clawpatch) — Automated code review, patch, and PR landing bot; a lean entry in the growing automated code review category.
63 +- [evilsocket/audit](https://github.com/evilsocket/audit) — 8-stage AI-powered vulnerability-discovery agent; one of the few genuine agentic security tools in this week's crawl.
64 +- [stephenlthorn/auto-identity-remove](https://github.com/stephenlthorn/auto-identity-remove) — Automated data broker opt-out runner; a privacy-defensive tool with genuine utility and no press coverage.
65 +
66 +### Press & Industry
67 +
68 +- [Anthropic will pay xAI $1.25B per month for compute](https://techcrunch.com/2026/05/20/anthropic-will-pay-xai-1-25-billion-per-month-for-compute/) — The compute capital layer of the AI stack moves independently of the tooling layer visible on GitHub this week.
69 +- [Jensen Huang says he's found a 'brand new' $200B market for Nvidia](https://techcrunch.com/2026/05/20/jensen-huang-says-hes-found-a-brand-new-200b-market-for-nvidia/) — Hardware narrative dominates press; the software tooling layer building on top of that hardware is largely invisible in coverage.
70 +- [OpenAI claims it solved an 80-year-old math problem — for real this time](https://techcrunch.com/2026/05/20/openai-claims-it-solved-an-80-year-old-math-problem-for-real-this-time/) — Reasoning model benchmarks in press; small model benchmark pressure in developer repos — parallel conversations with no crossover.
71 +- [Sam Altman makes 'mic drop' offer to every Y Combinator startup](https://techcrunch.com/2026/05/20/sam-altman-makes-mic-drop-offer-to-every-y-combinator-startup/) — Capital and distribution deals occupy press attention while the open-source tooling ecosystem builds without fanfare.