feature-init
Initialize feature-workflow for a project, or refresh CI files with --update. Creates docs/features/, .feature-workflow.yml, and optional GitHub Actions review setup.
What this skill does
# Initialize Feature Workflow
You are executing the **FEATURE INIT** workflow — either a one-time setup for a new project, or an update that refreshes CI files in an existing project.
## Modes
- **Init** — first time setup. Creates `docs/features/`, `.feature-workflow.yml`, and (if chosen) the GitHub Actions review workflow + prompts + API key secret.
- **Update** — existing project. Refreshes `.github/workflows/feature-review.yml` and `.github/review-prompt-*.md` from the current plugin templates. Does **not** touch `.feature-workflow.yml`, the API key secret, or `docs/features/`. Use this after upgrading the plugin to pull in improved workflow/prompt logic.
- **Workspace** — scaffold a multi-repo **workspace repo** (manifest + members + topology) instead of a single project. See "Workspace mode" below.
If the user said `/feature-init --update` or asked to "update" / "refresh" the CI files, jump to **Step 3: Run Init Script** with `--update` and skip the config gathering.
## Workspace mode (`/feature-init --workspace`)
If the user invokes `/feature-init --workspace` (or asks to "set up a multi-repo workspace"), scaffold a **workspace repo** instead of a single-project init:
1. Ask for the **GitHub org** and the **member repos** (each as `dir=owner/repo`). If they're unsure, list the org's repos with `gh repo list <org>`.
2. Run the scaffolder:
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/skills/feature-init/scripts/init.py" . --workspace \
--org <org> \
--member <dir>=<owner/repo> [--member <dir>=<owner/repo> ...]
```
3. Tell the user to run `./scripts/clone-members.sh` to pull the members in, then launch Claude from the workspace directory — every member is then in-tree, so cross-repo edits don't prompt.
The workspace is identified by its `.feature-workspace.yml` manifest, not its name. Single-repo features live in each member's `docs/features/`; cross-repo work is an **epic** in the workspace `docs/features/`. See `docs/designs/2026-06-08-multi-repo-workspace.md` for the full model.
## Step 1: Check for Existing Setup
Check if `.feature-workflow.yml` exists in the project root. If it does, read it and show the current config:
**"Feature workflow is already configured:**
```
Branch prefix: <prefix>
Target branch: <target>
Reviewer: <reviewer>
```
**Would you like to (a) change settings, (b) refresh CI files from the latest templates (`--update`), or (c) do nothing?"**
- **(a)** → continue to Step 2 to gather new config.
- **(b)** → run with `--update` (skip Step 2).
- **(c)** → stop.
## Step 2: Gather Configuration
$ARGUMENTS
If arguments were provided, parse them as `<branch-prefix> <target-branch>` (e.g., `/feature-init feat/ main`).
If no arguments, ask the user:
1. **Branch prefix** — what prefix do feature branches use?
- Examples: `feature/`, `feat/`, `fix/`, `topic/`
- Default: `feature/`
2. **Target branch** — what branch do feature PRs merge into?
- Examples: `dev`, `develop`, `main`, `staging`
- Default: `dev`
3. **External reviewer** — which AI reviewer should review PRs via GitHub Actions?
- `gemini` — uses Google's Gemini CLI via `google-github-actions/run-gemini-cli`
- `codex` — uses OpenAI's Codex CLI via `openai/codex-action`
- `oci` — calls OCI Generative AI's OpenAI-compatible `chat/completions` endpoint directly (no agentic CLI). Use when the reviewer must run on an OCI-served model (e.g. `openai.gpt-4.1`) with an OCI GenAI API key.
- `none` — skip CI review setup (can be added later by re-running init)
- Default: `none`
4. **API key** (only if reviewer is gemini, codex, or oci) — the API key for the chosen reviewer.
- For Gemini: a Google API key from https://aistudio.google.com/apikey
- For Codex: an OpenAI API key from https://platform.openai.com/api-keys
- For OCI: an OCI Generative AI API key (`sk-…`) from OCI Console → Analytics & AI → Generative AI → API keys.
- The key is uploaded as a GitHub repo secret (`GOOGLE_API_KEY` / `OPENAI_API_KEY` / `OCI_GENAI_API_KEY`) via `gh secret set` — it is never stored locally.
- OCI also reads two optional repo **variables**: `OCI_GENAI_BASE_URL` (default `…us-ashburn-1…/openai/v1`) and `OCI_GENAI_MODEL` (default `openai.gpt-4.1`). Set with `gh variable set` if your region/model differs.
## Step 3: Run Init Script
### Init mode
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/skills/feature-init/scripts/init.py" . \
--prefix "<prefix>" \
--target "<target>" \
--reviewer "<reviewer>" \
--api-key "<api-key>"
```
The script creates:
- `docs/features/` directory with initial `DASHBOARD.md`
- `.feature-workflow.yml` config file (includes `reviewer:` setting)
- If reviewer configured:
- `.github/workflows/feature-review.yml` — GitHub Actions workflow
- `.github/review-prompt-plan.md` — plan review prompt
- `.github/review-prompt-impl.md` — implementation review prompt
- Uploads the API key as a GitHub repo secret
- Enables the repo-level "Allow GitHub Actions to approve pull requests" setting so bot approvals actually land
### Update mode
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/skills/feature-init/scripts/init.py" . --update
```
The script reads the existing reviewer from `.feature-workflow.yml` and refreshes only:
- `.github/workflows/feature-review.yml`
- `.github/review-prompt-plan.md`
- `.github/review-prompt-impl.md`
- Re-applies the bot-approval repo setting (idempotent)
It does **not** touch `.feature-workflow.yml`, the API key secret, `docs/features/`, or any feature documents. After it finishes, commit and push the refreshed files to the default branch so the new workflow is live.
> **`--update` overwrites the workflow YAML unconditionally.** If you've customized `.github/workflows/feature-review.yml` locally, those edits will be replaced by the current template. Diff before committing if you have local customizations.
> **When to run `--update`:** any time you upgrade the feature-workflow plugin. The workflow template carries bug fixes (e.g., v9.7.3 added a `concurrency:` block that prevents duplicate review comments) that only reach your project via this refresh. Plugin upgrade alone does NOT propagate to your `.github/`.
## Step 4: Confirm
```
## Feature Workflow Initialized
Config: .feature-workflow.yml
Branch prefix: <prefix>
Target branch: <target>
Reviewer: <reviewer>
Feature branches will be named: <prefix><feature-id>
PRs will target: <target>
### CI Review Setup (if reviewer configured)
- Workflow: .github/workflows/feature-review.yml
- API secret: GOOGLE_API_KEY or OPENAI_API_KEY (uploaded)
- IMPORTANT: Commit and push the .github/ files to your default branch
before creating your first feature PR.
### Next Steps
- `/feature-capture` to create your first feature
- Edit .feature-workflow.yml anytime to change settings
```
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.