一键导入
project-lens
// Write an article about the project through a surprising lens — connecting it to current events, trends, philosophy, or comparable projects
// Write an article about the project through a surprising lens — connecting it to current events, trends, philosophy, or comparable projects
Allocate $10/day worth of $MIROSHARK to top tweeters about the project — rewards organic engagement
Daily report on new stars, forks, and traffic for watched repos
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Weekly recognition post for one fork operator — converts fork-cohort cohort data into a named human moment (POWER fork callout with their work, stars, and skills enabled)
Build a feature for the watched repo — picks from yesterday's repo-actions ideas first
Promote important recent log entries into MEMORY.md
| name | project-lens |
| description | Write an article about the project through a surprising lens — connecting it to current events, trends, philosophy, or comparable projects |
| var | |
| tags | ["content","dev"] |
${var} — Specific angle or lens to use (e.g. "unix philosophy", "regulation wave", "open source funding"). If empty, auto-selects based on what's trending and what hasn't been covered recently.
Read memory/MEMORY.md and the last 7 days of memory/logs/ for context. Read memory/watched-repos.md for the repo to cover.
This is NOT a repo progress update. repo-article and push-recap already cover that. This skill writes articles that explain the project through a different lens each time — connecting it to something bigger happening in the world. The goal is to make someone who's never heard of the project understand why it matters, through a frame they already care about.
If ${var} is empty, pick from the angle categories below.
Rotation rule (math-aware): there are 8 angle categories and this skill runs daily. Strict "never repeat in the last N days" is only satisfiable for N ≤ 8 — past 8 daily runs the oldest angle must re-enter any longer window. Past versions of this skill said "never repeat in the last 14 days" and every entry from Apr 22 → May 2 ended up rationalizing the violation in the log. Replace that with the rule below.
Pick the least recently used angle — i.e. the category whose most-recent entry across articles/project-lens-*.md and memory logs is the oldest. Tie-break by which category has been used least often in the last 30 days. Avoid repeating an angle used in the last 6 days unless one of these explicit overrides applies (and only one):
${var} is set and forces a specific angle.**Override:** with the reason.Do not invent your own justification narrative around a violated 14-day window. If the skill drifts toward repeating the same 1–2 angles, that's a signal to widen the rotation, not to write longer rationalizations.
Understand the project's current state — read recent articles, push-recaps, and repo metadata:
gh api repos/owner/repo --jq '{name, description, stargazers_count, forks_count, open_issues_count, updated_at}'
Also read 2-3 recent articles/repo-article-*.md and articles/push-recap-*.md to know what's been shipped lately.
Check what angles have been used recently — read articles/project-lens-*.md from the last 14 days, plus any ## Project Lens log entries with an explicit **Angle category:** line. Build a {category: last_used_date} map. Pick the angle with the oldest last_used_date (or any unused category if one exists). If two are tied, pick whichever has appeared fewer times in the last 30 days.
Research the external connection:
Research the project side — find the specific features, design decisions, or recent developments that connect to the chosen lens. Use actual code, commits, or architecture details — not vague claims.
Write a 700-1000 word article to articles/project-lens-${today}.md:
# [Title that leads with the lens, not the project]
[Opening hook — start with the external thing, the trend, the question. The project enters in paragraph 2 or 3, not paragraph 1. Draw the reader in with something they already care about.]
## [Section that establishes the external context]
[The trend, the event, the idea, the comparison. Build the frame before filling it.]
## [Section that introduces the project through that frame]
[Now bring in the project — but through the lens you've established. Don't describe features; describe how the project embodies, challenges, or extends the idea.]
## [Section that goes deeper]
[Specific technical or strategic detail that makes the connection non-obvious. This is where the article earns its existence — the insight that someone wouldn't get from a README.]
## [Section that zooms back out]
[What does this mean for the space? For builders? For the future of this kind of tool/project/approach?]
---
*Sources: [links to external sources used]*
Writing guidelines:
gh pr view <num> --repo <owner>/<repo> --json state,mergedAt,updatedAt --jq '{state, mergedAt, updatedAt}' (states: OPEN, MERGED, CLOSED). Use the resulting verb in the article body. Cache the verb (e.g. PR_VERB=opened) so the notification step reuses the same word.Send notification via ./notify:
Before drafting the notification body, re-read the article paragraph(s) that reference any PR. The notification's PR-status verbs (opened / merged / closed / draft) MUST match the article body word-for-word — if you wrote "opened" in the article, you write "opened" in the notification. Mismatch here is a user-visible factual error in the highest-visibility surface this skill produces. If in doubt, re-run gh pr view <num> --json state --jq .state and let the JSON win over both the article and the notification draft.
*New Article: [title]*
[3-4 sentence summary that captures both the lens and the project connection]
Read: [link to articles/project-lens-${today}.md — use `git remote get-url origin` for THIS repo]
Log to memory/logs/${today}.md:
## Project Lens
- **Angle category:** [which of the 8 categories — e.g. "Historical parallel (#7)"]
- **Last used:** [YYYY-MM-DD of the most recent prior entry in this category, or "never in last 30 days"]
- **Override:** [only present if rule overridden — state which override applies and why]
- **Title:** [article title]
- **External hook:** [what trend/event/idea was used]
- **Notification sent:** yes