Skip to content
Agentmart
Submit a tool

feature-flow

Use when the user says "/feature <slug> '<intent>'", "start a feature", "new feature with spec", "feature flow", "spec-then-implement a feature", or otherwise…

Skill by artemVeduta

IndexedMIT
Write a review

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/artemveduta-feature-flow

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

Use when the user says "/feature <slug> '<intent>'", "start a feature", "new feature with spec", "feature flow", "spec-then-implement a feature", or otherwise asks to take a feature from intent through OpenSpec proposal, branch, implementation, verification, PR, and archive in one orchestrated pass.

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-flow

What's inside

Skill name
feature-flow
Description
Use when the user says "/feature <slug> '<intent>'", "start a feature", "new feature with spec", "feature flow", "spec-then-implement a feature", or otherwise asks to take a feature from intent through OpenSpec proposal, branch, implementation, verification, PR, and archive in one orchestrated pass.
License
MIT
Instructions
139 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# feature-flow

## Overview

Thin orchestrator that walks a feature from **intent** to **merged PR + archived OpenSpec change** by delegating each phase to an existing skill. This skill does **not** reimplement any OpenSpec judgment, task selection, or archiving logic — it only sequences the existing `openspec-propose`, `openspec-apply-change`, and `openspec-archive-change` skills around a branch, verify, and PR step.

**Stops at:** the merged feature PR URL plus archive confirmation. Anything further (release cut, tag, publish) is out of scope.

## When to Use

- User invokes `/feature <slug> "<intent>"`.
- User says "start a feature called X", "spec and implement Y", "run the full feature flow for Z".

**Do NOT use this skill to:**
- Make OpenSpec design decisions (delegate to `openspec-propose`).
- Decide task ordering or implementation strategy (delegate to `openspec-apply-change`).
- Decide archive readiness (delegate to `openspec-archive-change`).
- Cut a release, tag, or publish — use `release-cut` / `release-tag`.

## Inputs

| Input | Format | Example |
|-------|--------|---------|
| `<slug>` | kebab-case, must match `^[a-z0-9][a-z0-9-]*$` (CONTRIBUTING.md §Branching) | `add-spanish-pack` |
| `<intent>` | one-line natural-language description | `"Add a Spanish vocabulary pack with audio prompts"` |

If either is missing, ask the user once and stop. Do not invent a slug from the intent — confirm with the user.

## Steps

Execute strictly in order. Each phase delegates to a sub-skill; do not inline its logic.

1. **Propose** — delegate to `openspec-propose`.
   - Invoke the `openspec-propose` skill, passing `<slug>` and `<intent>` as the change description.
   - That skill creates `openspec/changes/<slug>/{proposal,design,tasks}.md`.
   - Do not edit those artifacts here. If clarification is needed, let `openspec-propose` ask.

2. **Branch** — create the feature branch off the latest `main`.
   ```bash
   git fetch origin
   git checkout main && git pull --ff-only
   git checkout -b feature/<slug>
   ```
   The branch name **MUST** match `^feature/[a-z0-9][a-z0-9-]*$` per CONTRIBUTING.md §Branching. If it does not, STOP and ask the user for a valid slug.

3. **Apply** — delegate to `openspec-apply-change`.
   - Invoke the `openspec-apply-change` skill with `<slug>`.
   - That skill iterates over `openspec/changes/<slug>/tasks.md` and drives implementation.
   - Commits made during this phase MUST follow Conventional Commits 1.0 (e.g. `feat(<scope>): ...`, `fix(<scope>): ...`, `test(<scope>): ...`). `openspec-apply-change` is responsible for producing them; do not rewrite its commit messages here.

4. **Verify** — run the project's verification gates. Do not skip on green-looking output; require explicit success from each.
   ```bash
   pytest
   ruff check .
   pyright
   ```
   If any fails, STOP. Hand control back to `openspec-apply-change` (or the user) to fix; do not paper over failures.

5. **Push & open PR**
   ```bash
   git push -u origin feature/<slug>
   ```
   Open the PR with title and body derived from `openspec/changes/<slug>/proposal.md` (summary section verbatim). Use a HEREDOC to preserve formatting:
   ```bash
   gh pr create --base main --head feature/<slug> --title "feat(<slug>): <one-line summary from proposal>" --body "$(cat <<'EOF'
   ## Summary

   <paste the Summary section of openspec/changes/<slug>/proposal.md>

   ## OpenSpec change
   `openspec/changes/<slug>/`

   ## Verification
   - [x] `pytest`
   - [x] `ruff check .`
   - [x] `pyright`
   EOF
   )"
   ```
   Report the PR URL to the user.

6. **Wait for merge.** Do not poll, do not merge yourself. Stop until the user confirms the PR has merged to `main`.

7. **Archive** — delegate to `openspec-archive-change`.
   - After the user confirms the PR merged, invoke the `openspec-archive-change` skill with `<slug>`.
   - That skill moves `openspec/changes/<slug>/` to `openspec/archive/` and updates any indices. Do not move files by hand here.

## Output Format

Report exactly:

```
Feature flow complete for <slug>.
PR: <PR URL>
Archived: openspec/archive/<slug>/
```

If you stopped before merge (step 6), instead report:

```
Feature PR opened for <slug>: <PR URL>
Next: after merge to main, re-invoke /feature <slug> or ask me to archive.
```

## Quick Reference

| Step | Delegates to / Action | Output |
|------|----------------------|--------|
| 1 | `openspec-propose` skill | `openspec/changes/<slug>/{proposal,design,tasks}.md` |
| 2 | `git checkout -b feature/<slug>` | feature branch on local |
| 3 | `openspec-apply-change` skill | commits implementing tasks |
| 4 | `pytest` && `ruff check .` && `pyright` | all green |
| 5 | `git push` + `gh pr create` | PR URL |
| 6 | **STOP** — await human merge | — |
| 7 | `openspec-archive-change` skill | archived change |

## Red Flags — STOP and Reassess

- Slug does not match `^[a-z0-9][a-z0-9-]*$` → ask user for a valid slug; do not auto-sanitize.

From artemVeduta/lingo-loop, MIT.

More from artemVeduta/lingo-loop

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 22, 2026 (4 months ago)
Last release
Jun 22, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

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

More from artemVeduta

Cite this page

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