Initializes feature development by creating standardized documentation and directory structures based on project inputs.

Install

mkdir -p .claude/skills/init-minhquan2904 && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13842" && unzip -o skill.zip -d .claude/skills/init-minhquan2904 && rm skill.zip

Installs to .claude/skills/init-minhquan2904

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Initialize a new feature — scaffold change directory, generate metadata.yaml and proposal.md. Use when starting a new feature from user description, Confluence pages, or documentation files.
190 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Gather feature information and classify input sources.
  • Collect context from Confluence pages, documentation files, and codebase references.
  • Scaffold a change directory using `openspec new change`.
  • Generate `metadata.yaml` with project ID, name, type, and timestamps.
  • Load context for proposal generation from `artifact_context_modular.yml`.
  • Determine Feature Profile including mode, entity base class, and service pattern.

How it works

The skill initializes a new feature by collecting user input, scaffolding a change directory, generating `metadata.yaml` and `proposal.md` based on collected context and a determined Feature Profile.

Inputs & outputs

You give it
User description of a feature, Confluence URL, documentation file paths, or codebase references
You get back
A new change directory with `metadata.yaml` and `proposal.md` artifacts

When to use init

  • Start a new feature ticket
  • Document initial requirements for a new module
  • Scaffold boilerplate files for a feature proposal

About this skill

Initialize a new feature change by collecting user input from multiple sources, scaffolding the change directory via OpenSpec CLI, and generating the first two artifacts.

Output: metadata.yaml + proposal.md in openspec/changes/<name>/


Input: The user's request should include a feature name (kebab-case) OR a description of what they want to build. The user may also provide input sources.

Source TypeHow to IdentifyHow to Collect
Text descriptionUser describes the feature directlyUse as-is
Confluence pageUser mentions Confluence URL or page IDRead via Confluence MCP server
Documentation filesPaths to markdown/doc filesRead directly from file system
Codebase referencesUser specifies modules, services, or file pathsScan the specified source code

Steps

  1. Gather feature information and classify inputs

    If the user has not provided clear input, ask:

    "What feature do you want to build? Please describe it and provide any relevant sources:

    • Business requirements document (Confluence page ID or link)
    • Related documentation files (paths or URLs)
    • Existing code modules to reference (package/service names or paths)"

    From the description, derive a kebab-case name (e.g., "add payment notification" → add-payment-notification).

    IMPORTANT: Do NOT proceed without understanding what the user wants to build.

  2. Collect context from input sources

    Process each input source:

    a. Confluence pages: Use MCP server to retrieve page content. Extract requirements, acceptance criteria. b. Documentation files: Read markdown files. Extract standards, structures, rules. c. Codebase references: Scan specified modules. Identify patterns, interfaces, integration points.

    Compile a Context Summary listing all sources read and key information extracted.

  3. Scaffold change directory

    openspec new change "<name>"
    

    This creates openspec/changes/<name>/ with .openspec.yaml.

  4. Generate metadata.yaml

    Create openspec/changes/<name>/metadata.yaml:

    id: "<PROJECT_ID>"  # Format: UPPERCASE(rootProject.name) + YYMMDD + 5 random alphanumeric
    name: "<change-name>"
    type: "new-feature"  # or "change-request" for CR variant
    created: "YYYY-MM-DDTHH:mm:ss+07:00"
    summary: "<Tóm tắt yêu cầu bằng tiếng Việt>"
    service:
      - "<service-1>"
    path:
      - "<endpoint-1>"
    confluence:
      - id: "<page-id>"
        name: "<page-title>"
    jira:
      - id: "<ticket-id>"
        name: "<ticket-title>"
    

    Rules:

    • id: UPPERCASE(projectName) + YYMMDD + 5 random alphanumeric. Read project name from .sln or .csproj file at project root.
    • created: exact current timestamp with timezone
    • summary: Vietnamese
    • confluence/jira: from user input, empty [] if not provided
  5. Load context for proposal

    Read openspec/mapping/artifact_context_modular.yml → section proposal:

    • Resolve context paths → read knowledge files
    • Resolve rules paths → read constraint files (if any)
  6. Determine Feature Profile

    Cross-reference loaded knowledge to determine:

    a. Mode:

    • CRUD (standard module) or REPORT (report module)
    • Lock: code generation pattern

    b. Entity base class:

    • BaseFieldEntity (standard) / BaseFieldApprovableEntity (approval workflow) / BaseBoEntity (junction)
    • Lock: entity inheritance

    c. Service pattern:

    • Custom logic (IScoped) or Report (BaseCrossReportService)
    • Lock: service base class

    d. Feature type:

    • NEWBUILD vs MAINTENANCE
    • Check against features.md if available

    Show locked profile:

    Feature Profile:
    - Mode: CRUD/REPORT
    - Entity Base: BaseFieldEntity/BaseFieldApprovableEntity/BaseBoEntity
    - Service: IScoped / BaseCrossReportService
    - Controller: BaseController
    - Type: NEWBUILD/MAINTENANCE
    
  7. Generate proposal.md

    openspec instructions proposal --change "<name>" --json
    

    Parse the JSON response:

    • template: structural blueprint for the output
    • instruction: guidance for this artifact type
    • context/rules: constraints for the agent (DO NOT copy into output)
    • outputPath: where to write

    Create proposal.md following the template structure. Fill sections using:

    • Collected input context from Step 2
    • Feature Profile from Step 6
    • Knowledge from Step 5
  8. Show final status

    openspec status --change "<name>"
    

    Summarize: change name, location, Feature Profile, input sources used, artifacts created. Prompt: "Run /mf-srs <name> to generate SRS."

Guardrails

  • MUST collect input from ALL sources provided before generating any artifact
  • MUST generate metadata.yaml BEFORE proposal.md
  • context and rules from openspec instructions are constraints — DO NOT copy into output files
  • If change already exists → ask if user wants to continue or recreate
  • Verify artifact files exist after writing

When not to use it

  • When the user has not provided clear input for the feature.
  • When the task does not involve initializing a new feature or generating `metadata.yaml` and `proposal.md`.
  • When ignoring the `openspec` CLI for scaffolding.

Limitations

  • The skill requires a feature name or description as input.
  • The skill uses the `openspec` CLI for scaffolding.
  • The skill mandates generating `metadata.yaml` before `proposal.md`.

How it compares

This skill automates the initial setup and documentation for a new feature, ensuring consistent artifact generation and adherence to predefined project standards, unlike a manual feature initiation process.

Compared to similar skills

init side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
init (this skill)04moReviewIntermediate
daily16moNo flagsBeginner
feature-pipeline15moReviewBeginner
planning-with-files2336moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry