Skip to content
Agentmart
Submit a tool

feature

Build, enhance, or revive GitHub repos - ship one feature PR per watched repo (watched), make the best single enhancement on one external repo (external), or…

Skill by aeonfun

IndexedMIT★ 782
Write a review

Chalk Labs

Need help deploying feature?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/aeonfun-feature

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Build, enhance, or revive GitHub repos - ship one feature PR per watched repo (watched), make the best single enhancement on one external repo (external), or revive the top dormant repo (dormant).

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/feature

What's inside

Skill name
feature
Description
Build, enhance, or revive GitHub repos - ship one feature PR per watched repo (watched), make the best single enhancement on one external repo (external), or revive the top dormant repo (dormant).
License
MIT
Metadata
var: · mode: write · title: Feature · commits: true · category: dev
Instructions
597 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • body: 597 lines (spec recommends under 500)

Files (1)

  • SKILL.md

SKILL.md (first lines)

When the run prompt supplies a `Workflow correlation ID`, include the exact marker `<!-- aeon-dispatch:<ID> -->` in every PR body you create. This is a machine-checked chain receipt: do not alter, omit, or place it only in the final response.

> **${var}** — Selector `target[:arg] [--fix-issues]`, `target ∈ {watched, external, dormant}`. Empty or `watched` = build a feature on every watched repo (one PR each); `external:<owner/repo>` = one best enhancement on that external repo; `dormant` = revive the highest-scoring dormant repo. `repair:<owner/repo#N>@<sha>` is the dev-loop's bounded repair pass: update only that open PR at that exact reviewed SHA using the consumed review findings. A leading `build:<owner/repo | issue-url | free-text instruction>` — the shape the Telegram "ship which opportunity?" force-reply sends via `repo-scanner`'s offer — is intercepted **first** and routed into the **external** branch on that target/instruction. `--fix-issues` biases the chosen branch toward fixing an open GitHub issue. Full grammar below.

This skill merges three repo-work modes behind one selector so no capability is lost:

| Branch | Selector | Per run | Repo source | Use it for |
|---|---|---|---|---|
| **watched** (§A) | empty / `watched` | Iterates **every** watched repo, ships one PR per repo | `memory/watched-repos.md` | Weekly broad sweep — keep every repo moving |
| **external** (§B) | `external[:owner/repo[#N]]` | **Single** repo per run | `memory/topics/repos.md` catalog (or `${var}` override) | Targeted enhancement / issue fix on one repo |
| **dormant** (§C) | `dormant[:owner/repo]` | **Single** dormant repo per run | `memory/watched-repos.md` scored by dormancy | Reactivate a stale high-★ repo with one visible fix |

Today is ${today}. Read `memory/MEMORY.md` and the last 7 days of `memory/logs/` before starting — and before notifying, drop anything already reported in the last ~3 days of logs.

## Selector

**Dev-loop repair interception — check before every normal selector.** If `${var}`
matches `repair:<owner/repo#N>@<40-character-lowercase-sha>`, this is the one
bounded repair pass authorized by a verified review receipt. Fetch that exact PR
and fail closed unless it is still open and its current head SHA exactly matches
the supplied SHA. Read the injected `pr-review` chain context, and require at least
one `[CRITICAL]` or `[ISSUE]` finding whose receipt matches the same target and SHA.
Checkout the PR's existing head branch; do not create a new branch or PR. Address
only those actionable findings, run the repository's relevant tests, commit and
push to the existing PR branch. If the target, SHA, receipt, branch permissions,
or requested fix is ambiguous, make no change and report the blocker. One repair
invocation is one pass: never recursively dispatch another agent or claim that a
subsequent review passed.

**Telegram force-reply interception — check this immediately after the repair interception, before parsing normal selectors.** If `${var}` starts with `build:`, it is the "ship which opportunity?" force-reply that `repo-scanner` offers (routed here as `feature` with `var="build:<the operator's reply>"`). Strip the prefix with `${var#build:}` and treat the remainder as an **external build target/instruction** — route it straight into the **external** branch (§B), reusing that branch's existing logic (do **not** run the watched or dormant branches for a `build:` value, and do not duplicate §B). Normalize the remainder into a §B target:

- `owner/repo` → run §B as if `external:owner/repo` (B2 "clone that repo").
- an issue URL (`https://github.com/owner/repo/issues/N`) or `owner/repo#N` → run §B as if `external:owner/repo#N` (B2 "fetch that issue").
- free text like `owner/repo: add retry to the client` → run §B on `owner/repo`, using the trailing text as the **explicit enhancement to build** (see §B4's "requested enhancement" note — skip the auto-pick).
- anything else with no parseable repo → run §B passing the whole remainder as the enhancement instruction; §B B2/B4 already reason about selecting and scoping a target.

The remainder may itself contain colons — keep them. This is a complete run once §B ships its PR (or cleanly skips); do not then fall through to the normal selector.

Parse `${var}` into a **target** and optional flags:

- Empty or `watched` → **watched** branch (§A): sweep every watched repo, ship one feature PR each.
- `watched:<feature-spec>` → **watched** branch, but build `<feature-spec>` on the **FIRST watched repo only**.
- `external` → **external** branch (§B): auto-pick one catalog/watched repo and make the best single enhancement.
- `external:<owner/repo>` → **external** branch on that specific repo.
- `external:<owner/repo>#N` → **external** branch on that specific issue.
- `dormant` → **dormant** branch (§C): auto-select the highest-scoring dormant repo and revive it.
- `dormant:<owner/repo>` → **dormant** branch on that specific repo (skip selection).
- Trailing `--fix-issues` (with any target) → bias the branch toward **fixing an OPEN GitHub issue** rather than a proactive change (see each branch's "with `--fix-issues`" note).

Example values: `` (empty → watched sweep), `watched`, `watched:add a dark-mode toggle`, `external`, `external:acme/api`, `external:acme/api#42`, `dormant`, `dormant:acme/legacy-lib`, `external --fix-issues`, `dormant --fix-issues`.

Dispatch to exactly one branch. Do not run branches you weren't selected into.

## Voice

If `soul/SOUL.md` and `soul/STYLE.md` are populated, read both and match the operator's voice in every written output — per-repo notifications (§A), and the revival tweet draft (§C step 5). If they are empty templates or absent, use a clear, direct, neutral tone — short sentences, no hashtags, no emojis, no corporate launch-language.

## Config

All branches read operator-controlled files under `memory/` (runtime config — reference the paths exactly, never edit them here):

- **`memory/watched-repos.md`** — candidate repo pool. One `owner/repo` per line (markdown bullets like `- owner/repo` are fine; comment lines starting with `#` are ignored). Used by **watched** and **dormant**; also the OWNER fallback for **external**. If missing or empty on the **watched** branch, log `FEATURE_NO_CONFIG` and exit cleanly (no notification — empty config is not an error). On **dormant**, log `REPO_REVIVE_NO_CONFIG` and exit cleanly.
- **`memory/topics/repos.md`** — full repo catalog with descriptions, stack, and opportunities. Preferred repo source for the **external** branch; if absent, fall back to `memory/watched-repos.md`.
- **`memory/topics/stale-models.md`** — stale AI model names and their current replacements. Used only by the **dormant** branch's stale-model audit. Example shape:

  ```markdown
  # Stale Models

  ## Considered stale (flag if a watched repo's README/config still references these)
  - gpt-3.5
  - claude-2
  - claude-instant
  - gpt-4 (without version suffix)
  - text-davinci

  ## Current models (suggest these as replacements)
  - claude-sonnet-5-5
  - claude-opus-5-5
  - gpt-6-luna
  - gpt-6.1-sol
  - gemini-3
  - grok-4.7
  ```

  If the file is missing, the **dormant** branch skips the "stale model" fix category entirely (other categories still apply) and logs `REPO_REVIVE_NO_MODEL_CONFIG: skipping model audit`.

---

## Before building: is this already open?

A scheduled run can pick the same work it picked yesterday: an issue stays open until its PR merges, and yesterday's PR may still be in review. As soon as a work item is picked and its branch name is set (A3, B4, C4), and before any clone or build for it, ask GitHub, not memory:

```bash
./scripts/feature-open-pr.sh covered "$REPO" "$BRANCH" [<issue number, when building an issue>]
```

- exit `0`: an open PR from this account already covers it (same head branch, or it references that issue), or the branch already exists on the remote. Log `FEATURE_SKIP: <repo> - already open: <printed URL or branch>`, send no notification, drop that work item and pick the next candidate (A3, B4). Skip the repo only when no candidate is left.
- exit `2`: GitHub could not be read. Treat it as covered and skip the repo (the next candidate would hit the same error); never open a PR blind.
- exit `1`: nothing covers it. Build it, and create exactly `$BRANCH` later.

Run it once per work item, at pick time. There is no second check at branch time: scheduled runs of this skill serialize on the workflow concurrency group, and a push to a branch that appeared in the meantime is rejected by git instead of opening a duplicate.

This only decides whether to open something new. It never pushes to an existing PR; the repair interception above is the only path that does.

## After opening a PR that closes an issue

When the PR body says `Closes #N`, check the claim before reporting it:

```bash
./scripts/feature-open-pr.sh issue-open "$REPO" N
```

Exit `0` means #N is a real, open issue. Exit `1` prints what it is instead (`closed`, `pull-request`, `missing`): remove the `Closes #N` line with `gh pr edit`, say in the PR body which issue the change relates to, log `FEATURE_ISSUE_MISMATCH: <repo>#N <state>`, and name the mismatch in the notification rather than claiming the issue is fixed. Exit `2`: leave the PR as is and log `FEATURE_ISSUE_UNCHECKED: <repo>#N`.

## §A — Watched branch (build a feature on every watched repo)

Runs when `${var}` is empty or `watched[:<feature-spec>]`. Ships **one PR per watched repo** in a single run.

### A1. Load the target list

From aeonfun/aeon, MIT.

More from aeonfun/aeon

Signals

Stars
782
Forks
292
Open issues
0
Last commit (this folder)
Oct 3, 2026 (27 days ago)
Last release
Jul 9, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from aeonfun

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get feature running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying feature?

CallGet help
Cite this page

feature skill. Agent Mart. https://agentmart.dev/skills/aeonfun-feature (last updated 2026-10-24)