Feature
# Feature This skill automatically builds one feature for each repository in a watched list during a single execution, prioritizing candidates from the previous day's repo-actions analysis. Use it for weekly maintenance sweeps to keep multiple repositories progressing steadily. Set the optional variable to build a specific feature for only the first watched repo instead of iterating through all of them.
git clone --depth 1 https://github.com/aaronjmars/aeon /tmp/feature && cp -r /tmp/feature/skills/feature ~/.claude/skills/featureSKILL.md
> **${var}** — Optional. If set, build this specific feature for the FIRST watched repo only. If empty, iterate every watched repo and pick per-repo.
This skill is the **multi-repo** sibling of `external-feature`:
| | `feature` (this skill) | `external-feature` |
|---|---|---|
| Per run | Iterates **every** watched repo, ships one PR per repo | **Single** repo per run |
| Repo source | `memory/watched-repos.md` | `memory/watched-repos.md` (or `${var}` override) |
| Use it for | Weekly broad sweep — keep every repo moving | Targeted enhancement on one repo |
| Notification | One per successfully-built feature (per repo) | One per run |
Today is ${today}. Read `memory/MEMORY.md` and the last 7 days of `memory/logs/` before starting.
## Voice
If `soul/SOUL.md` and `soul/STYLE.md` are populated, read both and match the operator's voice in every per-repo notification. If they are empty templates or absent, use a clear, direct, neutral tone — short sentences, no corporate launch-language.
## Config
This skill reads the candidate repo list from `memory/watched-repos.md`. If the file is missing or empty, log `FEATURE_NO_CONFIG` and exit cleanly (no notification — empty config is not an error).
Format: one `owner/repo` per line. Markdown bullets like `- owner/repo` are fine; comment lines starting with `#` are ignored.
## Steps
### 1. Load the target list
Parse `memory/watched-repos.md` into a list of `owner/repo` entries.
If `${var}` is set, restrict the list to **the first repo only** and use `${var}` as the feature spec for it.
### 2. For each repo in the list, run steps 3–10 independently
A failure on one repo must NOT stop the others — catch the failure, log it, continue. Use a fresh working directory per repo (e.g. `/tmp/feature-build-${repo-name}`).
### 3. Pick what to build for this repo
In this priority order:
a. **If `${var}` is set AND this is the first repo**, build that.
b. **Check yesterday's `repo-actions` output** in `articles/repo-actions-*.md` (most recent file) for ideas scoped to THIS repo. Pick the highest-impact idea that's autonomously implementable.
c. **Check open GitHub issues labelled `ai-build`** on this repo:
```bash
gh issue list -R owner/repo --label ai-build --state open
```
d. **Check `memory/MEMORY.md`** for planned features or next priorities tied to this repo.
e. **If none of the above yields anything for this repo**, log `FEATURE_SKIP: <repo> — no suitable feature found` and **skip to the next repo. Do NOT send a notification for skipped repos.**
### 4. Clone the repo
Into a per-repo temp directory:
```bash
gh repo clone owner/repo /tmp/feature-build-${repo-name}
cd /tmp/feature-build-${repo-name}
```
### 5. Read the codebase
Understand the project structure, README, package.json/config files, recent commits, and the area you'll modify:
```bash
git log --oneline -20
```
Read the area you'll modify in full before changing anything.
### 6. Implement the feature
Write clean, complete code. No TODOs or placeholders. Match the existing code style exactly — indentation, naming, patterns. Don't introduce new dependencies unless absolutely necessary. Don't refactor unrelated code — stay focused on one improvement.
### 7. Branch and push
```bash
git checkout -b feat/<short-feature-name>
git add -A
git commit -m "feat: <description of what was built>"
git push -u origin feat/<short-feature-name>
```
### 8. Open a PR
```bash
gh pr create -R owner/repo \
--title "feat: <short description>" \
--body "## What
<Description of the feature>
## Why
<What triggered this — repo-actions idea, issue, or gap identified>
## Changes
- file1: what changed
- file2: what changed
---
*Built autonomously by Aeon*"
```
### 9. Update memory
Log what was built (per repo) to `memory/logs/${today}.md`. Include the repo name in every log line so per-repo history stays distinct:
```markdown
## Feature — owner/repo
- **Built:** <feature name>
- **Why:** <trigger>
- **PR:** <url>
- **Files:** <list>
- FEATURE_OK
```
### 10. Notify — one per successfully built feature
For each repo with a shipped PR, send a separate `./notify` so the operator gets a detailed per-repo message. The notification should be rich enough that a reader understands exactly what was built, why it matters, and how it works WITHOUT clicking the PR link.
**Do NOT compress into 1–2 lines. Every section below is REQUIRED.**
```
*Feature Built — ${today} — owner/repo*
<Feature name>
<2–3 sentence description of what the feature does in plain language. Explain it like you're telling a non-technical reader in the community what just got added to the project.>
Why this matters:
<2–3 sentences on why this is relevant to the project RIGHT NOW. What problem did users/developers have before? What triggered this — a repo-actions idea, a GitHub issue, a gap in the codebase? How does it move the project forward?>
What was built:
- <file/component>: <what was added/modified — be specific about the functionality, not just "added endpoint">
- <file/component>: <same level of detail>
- <file/component (if applicable)>: ...
How it works:
<3–4 sentences on the technical implementation. Approach taken and why. Libraries/APIs used. How it integrates with existing code. Any interesting design decisions.>
What's next:
<1–2 sentences on follow-up work or how this connects to the broader roadmap.>
PR: <url>
```
BAD (too short — do NOT do this):
> "Feature Built: Data Export. Users can download results as JSON/CSV. PR: url"
GOOD level of detail:
> Per-section answers like the template above. A reader who never clicks the PR should still come away knowing what changed and why.
### 11. Final wrap-up
After iterating every repo, end with a `## Summary` listing each watched repo and its outcome: PR url, skipped, or failed. If every repo was skipped, do NOT send a notification at all — just log the per-repo skip lines.
## Sandbox Note
All GitHub operations go through `gh` CLI — handles auth interMention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
Curated AI-agent tweets, clustered into narratives with insight summaries
Tracker of AI agent substitution signals — which roles, companies, and industries show real headcount displacement. Named roles + real deployments only.
Competitive-intelligence digest on the AI agent framework space — momentum, releases, breaking changes across a curated watchlist
Cross-domain market pulse from AIXBT's free grounding endpoint — crypto, macro, tradfi, geopolitics. Refreshes taxonomy references (clusters, chains) as a bonus.
Pre-batch API provider health check — detects credit exhaustion or auth failure for every configured provider key before the scheduled batch runs, giving the operator a window to act before skills degrade
List a wallet's live ERC-20 token approvals on Base and flag unlimited / risky spender grants. Keyless via Base RPC (eth_getLogs + eth_call) — no explorer key needed.