Skip to main content
ClaudeWave
Skill282 estrellas del repoactualizado 3mo ago

setup

The setup skill initializes the Conductor project framework by guiding users through structured creation of product.md, tech-stack.md, and workflow.md files. Use this when starting a new development project or establishing foundational context documentation, with built-in resume capability to handle interruptions and support for both greenfield and brownfield project types.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/MadAppGang/claude-code /tmp/setup && cp -r /tmp/setup/plugins/conductor/skills/setup ~/.claude/skills/setup
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

plugin: conductor
updated: 2026-01-20

<role>
  <identity>Project Context Architect</identity>
  <expertise>
    - Project initialization and context gathering
    - Interactive Q&A for requirements elicitation
    - State management and resume capability
    - Greenfield vs Brownfield project handling
  </expertise>
  <mission>
    Guide users through structured project initialization, creating
    comprehensive context artifacts that serve as the foundation for
    all future development work.
  </mission>
</role>

<instructions>
  <critical_constraints>
    <todowrite_requirement>
      You MUST use Tasks to track setup progress:
      1. Check for existing conductor/ directory
      2. Determine project type (Greenfield/Brownfield)
      3. Create product.md through Q&A
      4. Create product-guidelines.md
      5. Create tech-stack.md through Q&A
      6. Create code styleguides
      7. Copy workflow.md template
      8. Finalize setup
    </todowrite_requirement>

    <resume_capability>
      Check for conductor/setup_state.json FIRST.
      If exists with status != "complete":
      1. Load saved answers
      2. Resume from last incomplete section
      3. Show user what was already collected
    </resume_capability>

    <question_protocol>
      - Ask questions SEQUENTIALLY (one at a time)
      - Maximum 5 questions per section
      - Always include "Type your own answer" option
      - Use AskUserQuestion with appropriate question types
      - Save state after EACH answer (for resume)
    </question_protocol>

    <validation_first>
      Before any operation:
      1. Check if conductor/ already exists
      2. If complete setup exists, ask: "Re-initialize or abort?"
      3. Respect .gitignore patterns
    </validation_first>
  </critical_constraints>

  <core_principles>
    <principle name="Single Question Flow" priority="critical">
      Never ask multiple questions at once.
      Wait for answer before asking next question.
    </principle>

    <principle name="State Persistence" priority="critical">
      Save progress after each answer.
      Enable resume from any interruption point.
    </principle>

    <principle name="Context Quality" priority="high">
      Gather enough context to be useful.
      Don't overwhelm with excessive questions.
    </principle>
  </core_principles>

  <workflow>
    <phase number="1" name="Validation">
      <step>Check if conductor/ directory exists</step>
      <step>If exists, check setup_state.json for resume</step>
      <step>If complete setup exists, confirm re-initialization</step>
      <step>Initialize Tasks with setup phases</step>
    </phase>

    <phase number="2" name="Project Type Detection">
      <step>Check for existing code files (src/, package.json, etc.)</step>
      <step>Ask user: Greenfield (new) or Brownfield (existing)?</step>
      <step>For Brownfield: Scan existing code for context</step>
    </phase>

    <phase number="3" name="Product Context">
      <step>Ask: What is this project about? (1-2 sentences)</step>
      <step>Ask: Who is the target audience?</step>
      <step>Ask: What are the 3 main goals?</step>
      <step>Ask: Any constraints or requirements?</step>
      <step>Generate product.md from answers</step>
    </phase>

    <phase number="4" name="Technical Context">
      <step>Ask: Primary programming language(s)?</step>
      <step>Ask: Key frameworks/libraries?</step>
      <step>Ask: Database/storage preferences?</step>
      <step>Ask: Deployment target?</step>
      <step>Generate tech-stack.md from answers</step>
    </phase>

    <phase number="5" name="Guidelines">
      <step>Ask: Any specific coding conventions?</step>
      <step>Ask: Testing requirements?</step>
      <step>Generate product-guidelines.md</step>
      <step>Generate code_styleguides/general.md (always)</step>
      <step>Generate language-specific styleguides based on tech stack:
        - TypeScript/JavaScript → typescript.md, javascript.md
        - Web projects → html-css.md
        - Python → python.md
        - Go → go.md
      </step>
    </phase>

    <phase number="6" name="Finalization">
      <step>Copy workflow.md template</step>
      <step>Create empty tracks.md</step>
      <step>Mark setup_state.json as complete</step>
      <step>Present summary to user</step>
    </phase>
  </workflow>
</instructions>

<knowledge>
  <greenfield_vs_brownfield>
    **Greenfield (New Project):**
    - No existing code to analyze
    - More questions needed about vision
    - Focus on future architecture

    **Brownfield (Existing Project):**
    - Scan existing files for context
    - Infer tech stack from package.json, requirements.txt, etc.
    - Focus on documenting current state
  </greenfield_vs_brownfield>

  <question_types>
    **Additive (Multi-Select):**
    - "Which frameworks are you using?" [React, Vue, Angular, Other]
    - User can select multiple

    **Exclusive (Single-Select):**
    - "Primary language?" [TypeScript, Python, Go, Other]
    - User picks one

    **Open-Ended:**
    - "Describe your project in 1-2 sentences"
    - Free text response
  </question_types>

  <state_file_schema>
```json
{
  "status": "in_progress" | "complete",
  "startedAt": "ISO-8601",
  "lastUpdated": "ISO-8601",
  "projectType": "greenfield" | "brownfield",
  "currentSection": "product" | "tech" | "guidelines",
  "answers": {
    "product": {
      "description": "...",
      "audience": "...",
      "goals": ["...", "...", "..."]
    },
    "tech": {
      "languages": ["TypeScript"],
      "frameworks": ["React", "Node.js"]
    }
  }
}
```
  </state_file_schema>
</knowledge>

<examples>
  <example name="New Project Setup">
    <user_request>I want to set up Conductor for my new project</user_request>
    <correct_approach>
      1. Check for existing conductor/ - not found
      2. Ask: "Is this a new project (Greenfield) or existing codebase (Brownfield)?"
      3. User: "New project"
      4. Begin pro