Skill
Community

swe-feature-onboard

Install
1
Install the plugin
$
npx claudepluginhub earthmanweb/serena-workflow-engine --plugin serena-workflow-engine

Want just this skill?

Then install: npx claudepluginhub u/[userId]/[slug]

Description

Feature onboarding wizard with optional quick mode

Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

⚠️ WORKFLOW INITIALIZATION

If starting a new session, first read workflow initialization:

mcp__plugin_swe_serena__read_memory("wf/WF_INIT")

Follow WF_INIT instructions before executing this skill.


/swe-feature-onboard [KEY] [--quick]

Interactive wizard for registering features in the workflow system.

Usage

/swe-feature-onboard              # Full interactive wizard
/swe-feature-onboard MYAPP        # Start with key pre-filled
/swe-feature-onboard MYAPP --quick # Quick mode (30 sec, minimal)

Quick Mode vs Full Mode

AspectQuick ModeFull Mode
Time~30 sec2-5 min
Swarm analysisNoOptional (10 agents)
DOM_* memoriesNoYes (if domains found)
SYS_* memoriesNoYes (if systems found)
Layer detectionBasicDetailed
Best forSmall features, prototypingLarge codebases

Stage 1: Basic Info

Use AskUserQuestion for feature information (skip if provided via args):

AskUserQuestion({
  questions: [
    {
      question: "What is the Feature Key? (Short identifier used in memory names, e.g., BACKEND, AUTH, BLOCKS)",
      header: "Feature Key",
      options: [
        { label: "BACKEND", description: "For backend/API features" },
        { label: "FRONTEND", description: "For UI/client features" },
        { label: "AUTH", description: "For authentication features" }
      ],
      multiSelect: false
    },
    {
      question: "What type of codebase is this feature?",
      header: "Type",
      options: [
        { label: "web_app", description: "Web application" },
        { label: "wordpress_theme", description: "WordPress theme" },
        { label: "wordpress_plugin", description: "WordPress plugin" },
        { label: "api", description: "API/Backend service" }
      ],
      multiSelect: false
    }
  ]
})

Then ask for paths:

AskUserQuestion({
  questions: [
    {
      question: "Where is the code located? (Root path for this feature)",
      header: "Root Path",
      options: [
        { label: "src/", description: "Standard source directory" },
        { label: "wp-content/themes/", description: "WordPress themes" },
        { label: "wp-content/plugins/", description: "WordPress plugins" }
      ],
      multiSelect: false
    }
  ]
})

Validation:

  • Key: UPPERCASE, underscores allowed, 2-20 chars
  • Path: Must exist in project

Stage 2: Tech Stack

Use AskUserQuestion for technology selection:

AskUserQuestion({
  questions: [
    {
      question: "What is the primary programming language?",
      header: "Language",
      options: [
        { label: "php", description: "PHP (WordPress, Laravel, etc.)" },
        { label: "typescript", description: "TypeScript/JavaScript" },
        { label: "python", description: "Python" }
      ],
      multiSelect: false
    },
    {
      question: "What framework is used (if any)?",
      header: "Framework",
      options: [
        { label: "wordpress", description: "WordPress CMS" },
        { label: "react", description: "React.js" },
        { label: "nextjs", description: "Next.js" },
        { label: "none", description: "No framework / vanilla" }
      ],
      multiSelect: false
    }
  ]
})

Auto-detection: Scan root path for:

  • package.json → Node/TypeScript
  • composer.json → PHP
  • Cargo.toml → Rust
  • go.mod → Go
  • style.css with Theme Name: → WordPress theme

Stage 3: Analysis Mode

Skip in quick mode - go directly to Stage 5.

Use AskUserQuestion for analysis mode selection:

AskUserQuestion({
  questions: [
    {
      question: "How should I analyze the codebase?",
      header: "Analysis",
      options: [
        {
          label: "Full DAA Swarm (Recommended)",
          description: "10 agents analyze in parallel, creates DOM_*/SYS_* memories (2-5 min)"
        },
        {
          label: "Quick Scan",
          description: "Basic directory structure and layer detection (~30 sec)"
        },
        {
          label: "Manual Configuration",
          description: "You describe the architecture, I create memories from your input"
        }
      ],
      multiSelect: false
    }
  ]
})

If "Full DAA Swarm" selected:

⚠️ MANDATORY: Load swarm coordination context first:

mcp__plugin_swe_serena__read_memory("feature/FEATURE_SWARM")

This loads swarm patterns, agent definitions, and coordination protocols needed for DAA orchestration. Without it, swarm agents lack the project's coordination standards.

mcp__ruv-swarm__daa_init({ enableLearning: true })

mcp__ruv-swarm__task_orchestrate({
  task: "Analyze feature architecture",
  agents: [
    "config-analyzer",    // Parse config files
    "architecture-mapper", // Detect layers
    "pattern-detector",   // Find conventions
    "domain-extractor",   // Extract domains
    "system-finder",      // Identify systems
    "test-analyzer",      // Test patterns
    "import-tracer",      // Dependency graph
    "convention-learner", // Style detection
    "file-indexer",       // File inventory
    "synthesizer"         // Compile results
  ],
  context: { featureKey: "[KEY]", rootPath: "[PATH]" }
})

Stage 4: Architecture Confirmation

Skip in quick mode.

Present detected architecture and confirm with AskUserQuestion:

// First, display the detected architecture in text:
// "I detected the following architecture for [FEATURE_NAME]:
//  Layers: [table]
//  Data Flow: [diagram]
//  Dependencies: [list]"

AskUserQuestion({
  questions: [
    {
      question: "Is the detected architecture correct?",
      header: "Confirm",
      options: [
        {
          label: "Yes, correct",
          description: "Proceed with memory creation using this architecture"
        },
        {
          label: "No, needs changes",
          description: "I'll provide corrections to the architecture"
        },
        {
          label: "Start over",
          description: "Re-run analysis with different settings"
        }
      ],
      multiSelect: false
    }
  ]
})

If user selects "No, needs changes", gather corrections manually.


Stage 5: Memory Creation

Create FEATURE_[KEY].md

# FEATURE_[KEY] - [Name]

## Feature Overview

| Property      | Value                 |
| ------------- | --------------------- |
| **Name**      | [Feature Name]        |
| **Key**       | [KEY]                 |
| **Type**      | [type]                |
| **Language**  | [language]            |
| **Framework** | [framework or "none"] |

## Scope Definition

### Primary Directories

| Directory | Purpose   |
| --------- | --------- |
| [dir]     | [purpose] |

## Architecture Layers

[ASCII diagram or table of layers]

## Key Files

| File   | Purpose   |
| ------ | --------- |
| [file] | [purpose] |

## Related Memories

| Memory        | Content           |
| ------------- | ----------------- |
| DOM_[KEY]_*   | Domain behaviors  |
| SYS_[KEY]_*   | System references |
| INDEX_[KEY]_* | Indexes           |

## Testing

| Suite   | File   | Focus   |
| ------- | ------ | ------- |
| [suite] | [file] | [focus] |

Create via Serena:

mcp__plugin_swe_serena__write_memory("FEATURE_[KEY]", "<content>")

Additional memories (full mode only):

If domains detected:

mcp__plugin_swe_serena__write_memory("DOM_[KEY]_[DOMAIN]", "<content>")

If systems detected:

mcp__plugin_swe_serena__write_memory("SYS_[KEY]_[SYSTEM]", "<content>")

Stage 6: Symbol Index (Related Docs)

After creating FEATURE_[KEY] and any DOM__/SYS__ memories, generate the Related Docs table.

Invoke the /swe-symbol-index skill:

/swe-symbol-index [KEY]

This will:

  1. Read all linked memories listed in FEATURE_[KEY]'s Related Memories section
  2. Extract heading symbols from each via get_symbols_overview
  3. Build a summary table and insert it as ## Related Docs after Feature Overview

Skip if no Related Memories were created (e.g., quick mode with no DOM__/SYS__).


Stage 7: Index Update

Update INDEX_FEATURES.md:

mcp__plugin_swe_serena__edit_memory(
  "INDEX_FEATURES",
  "## Registered Features",
  "## Registered Features\n\n| [KEY] | [Name] | [Type] | [Language] | Active |",
  "literal"
)

Skill Return

## Skill Return

- **Skill**: swe-feature-onboard
- **Status**: success
- **Feature Key**: [KEY]
- **Mode**: [full|quick]
- **Memories Created**: FEATURE_[KEY], [DOM__, SYS__ if applicable]
- **Next Step Hint**: [WF_SWARM_ORCHESTRATE if DAA swarm was used, WF_START otherwise]

Routing after onboarding:

  • If DAA swarm analysis was used → WF_SWARM_ORCHESTRATE (swarm context is already loaded)
  • If quick mode or manual → WF_START (normal entry)

Exit

> **Skill /swe-feature-onboard complete** - Feature [KEY] registered

Troubleshooting

Swarm MCP unavailable

Fall back to quick mode or manual configuration.

Path doesn't exist

ls -la [path]

Ask user to correct.

INDEX_FEATURES.md missing

Create it first:

mcp__plugin_swe_serena__write_memory("INDEX_FEATURES", "# INDEX_FEATURES\n\n## Registered Features\n\n| Key | Name | Type | Language | Status |\n|-----|------|------|----------|--------|\n")
Stats
Stars1
Forks0
Last CommitFeb 26, 2026

Similar Skills