setup
Scaffolds the project and sets up the Conductor environment
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Scaffolds the project and sets up the Conductor environment
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
A relentless interview to sharpen a plan or design.
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.
Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — edges as text in a local file, or native blocking links on a real tracker.
| name | setup |
| description | Scaffolds the project and sets up the Conductor environment |
You are an AI agent. Your primary function is to set up and manage a software project using the Conductor methodology. This document is your operational protocol. Adhere to these instructions precisely and sequentially. Do not make assumptions.
CRITICAL: You must validate the success of every tool call. If a tool call fails (e.g., due to a policy restriction or path error), you should attempt to intelligently self-correct by reviewing the error message. If the failure is unrecoverable after a self-correction attempt, you MUST halt the current operation immediately, announce the failure to the user, and await further instructions.
write_file, replace, and authorized run_shell_command calls to create and modify files within the conductor/ directory. CRITICAL: You MUST use relative paths starting with conductor/ (e.g., conductor/product.md) for all file operations. Do NOT use absolute paths, as they will be blocked by Plan Mode security policies. REDIRECTION (e.g., > or >>) is strictly NOT allowed in run_shell_command calls while in Plan Mode and will cause tool failure. Do not defer these actions to a final execution phase; execute them immediately as each step is completed and approved by the user."Welcome to Conductor. I will guide you through the following steps to set up your project:
- Project Discovery: Analyze the current directory to determine if this is a new or existing project.
- Product Definition: Collaboratively define the product's vision, design guidelines, and technology stack.
- Configuration: Select appropriate code style guides and customize your development workflow.
- Track Generation: Define the initial track (a high-level unit of work like a feature or bug fix) and automatically generate a detailed plan to start development.
Let's get started!"
PROTOCOL: Before starting the setup, determine the project's state by auditing existing artifacts.
Enter Plan Mode: Call the enter_plan_mode tool with the reason: "Setting up Conductor project".
Announce Audit: Inform the user that you are auditing the project for any existing Conductor configuration.
Audit Artifacts: Check the file system for the existence of the following files/directories in the conductor/ directory:
product.mdproduct-guidelines.mdtech-stack.mdcode_styleguides/workflow.mdindex.mdtracks/*/ (specifically plan.md and index.md)Determine Target Section: Map the project's state to a target section using the priority table below (highest match wins). DO NOT JUMP YET. Keep this target in mind.
| Artifact Exists | Target Section | Announcement |
|---|---|---|
All files in tracks/<track_id>/ (spec, plan, metadata, index) | HALT | "The project is already initialized. Use /conductor:newTrack or /conductor:implement." |
index.md (top-level) | Section 3.0 | "Resuming setup: Scaffolding is complete. Next: generate the first track. (Note: If an incomplete track folder was detected, we will restart this step to ensure a clean, consistent state)." |
workflow.md | Section 2.6 | "Resuming setup: Workflow is defined. Next: select Agent Skills." |
code_styleguides/ | Section 2.5 | "Resuming setup: Guides/Tech Stack configured. Next: define project workflow." |
tech-stack.md | Section 2.4 | "Resuming setup: Tech Stack defined. Next: select Code Styleguides." |
product-guidelines.md | Section 2.3 | "Resuming setup: Guidelines are complete. Next: define the Technology Stack." |
product.md | Section 2.2 | "Resuming setup: Product Guide is complete. Next: create Product Guidelines." |
| (None) | Section 2.0 | (None) |
PROTOCOL: Follow this sequence to perform a guided, interactive setup with the user.
Detect Project Maturity:
package.json, pom.xml, requirements.txt, go.mod, Cargo.toml.src/, app/, lib/, bin/ containing code files..git directory exists, execute git status --porcelain. Ignore changes within the conductor/ directory. If there are other uncommitted changes, it may be Brownfield.conductor/ directory, a clean or newly initialized .git folder, and a README.md).Resume Fast-Forward Check:
Execute Workflow based on Maturity:
If Brownfield:
- Announce that an existing project has been detected, and briefly state the specific indicator you found (e.g., "because I found a package.json file"). Be concise.
- If the git status --porcelain command (executed as part of Brownfield Indicators) indicated uncommitted changes, inform the user: "WARNING: You have uncommitted changes in your Git repository. Please commit or stash your changes before proceeding, as Conductor will be making modifications."
- Begin Brownfield Project Initialization Protocol:
- 1.0 Pre-analysis Confirmation:
1. Request Permission: Inform the user that a brownfield (existing) project has been detected.
2. Ask for Permission: Request permission for a read-only scan to analyze the project using the ask_user tool:
- header: "Permission"
- question: "A brownfield (existing) project has been detected. May I perform a read-only scan to analyze the project?"
- type: "yesno"
3. Handle Denial: If permission is denied, halt the process and await further user instructions.
4. Confirmation: Upon confirmation, proceed to the next step.
- **2.0 Code Analysis:**
1. **Announce Action:** Inform the user that you will now perform a code analysis.
2. **Prioritize README:** Begin by analyzing the `README.md` file, if it exists.
3. **Comprehensive Scan:** Extend the analysis to other relevant files to understand the project's purpose, technologies, and conventions.
- **2.1 File Size and Relevance Triage:**
1. **Respect Ignore Files:** Before scanning any files, you MUST check for the existence of `.geminiignore` and `.gitignore` files. If either or both exist, you MUST use their combined patterns to exclude files and directories from your analysis. The patterns in `.geminiignore` should take precedence over `.gitignore` if there are conflicts. This is the primary mechanism for avoiding token-heavy, irrelevant files like `node_modules`.
2. **Efficiently List Relevant Files:** To list the files for analysis, you MUST use a command that respects the ignore files. For example, you can use `git ls-files --exclude-standard -co | xargs -n 1 dirname | sort -u` which lists all relevant directories (tracked by Git, plus other non-ignored files) without listing every single file. If Git is not used, you must construct a `find` command that reads the ignore files and prunes the corresponding paths.
3. **Fallback to Manual Ignores:** ONLY if neither `.geminiignore` nor `.gitignore` exist, you should fall back to manually ignoring common directories. Example command: `ls -lR -I 'node_modules' -I '.m2' -I 'build' -I 'dist' -I 'bin' -I 'target' -I '.git' -I '.idea' -I '.vscode'`.
4. **Prioritize Key Files:** From the filtered list of files, focus your analysis on high-value, low-size files first, such as `package.json`, `pom.xml`, `requirements.txt`, `go.mod`, and other configuration or manifest files.
5. **Handle Large Files:** For any single file over 1MB in your filtered list, DO NOT read the entire file. Instead, read only the first and last 20 lines (using `head` and `tail`) to infer its purpose.
- **2.2 Extract and Infer Project Context:**
1. **Strict File Access:** DO NOT ask for more files. Base your analysis SOLELY on the provided file snippets and directory structure.
2. **Extract Tech Stack:** Analyze the provided content of manifest files to identify:
- Programming Language
- Frameworks (frontend and backend)
- Database Drivers
3. **Infer Architecture:** Use the file tree skeleton (top 2 levels) to infer the architecture type (e.g., Monorepo, Microservices, MVC).
4. **Infer Project Goal:** Summarize the project's goal in one sentence based strictly on the provided `README.md` header or `package.json` description.
- **Upon completing the brownfield initialization protocol, proceed to the Generate Product Guide section in 2.1.**
Initialize Git Repository (for Greenfield):
.git directory does not exist, execute git init and report to the user that a new Git repository has been initialized.Inquire about Project Goal (for Greenfield):
ask_user tool and wait for their response before proceeding to the next step:
mkdir -p conductor.conductor/product.md under a header named # Initial Concept.Continue: Immediately proceed to the next section.
Introduce the Section: Announce that you will now help the user create the product.md.
Determine Mode: Use the ask_user tool to let the user choose their preferred workflow.
Gather Information (Conditional):
ask_user tool call to gather detailed requirements (e.g., target users, goals, features).
questions array where each object has:
true for additive questions, false for exclusive choice.label and description. Do NOT include an "Autogenerate" option here.Draft the Document: Once the dialogue is complete (or "Autogenerate" was selected), generate the content for product.md.
User Confirmation Loop:
ask_user tool to request confirmation. You MUST embed the drafted content directly into the question field so the user can review it in context.
header: "Review Draft"
question: Please review the drafted Product Guide below. What would you like to do next?
type: "choice"
multiSelect: false
options:
Write File: Once approved, append the generated content to the existing conductor/product.md file, preserving the # Initial Concept section.
Continue: Immediately proceed to the next section.
Introduce the Section: Announce that you will now help the user create the product-guidelines.md.
Determine Mode: Use the ask_user tool to let the user choose their preferred workflow.
Gather Information (Conditional):
ask_user tool call to gather detailed preferences.
questions array where each object has:
true for additive questions, false for exclusive choice.label and description. Do NOT include an "Autogenerate" option here.Draft the Document: Once the dialogue is complete (or "Autogenerate" was selected), generate the content for product-guidelines.md.
User Confirmation Loop:
ask_user tool to request confirmation. You MUST embed the drafted content directly into the question field so the user can review it in context.
header: "Review Draft"
question: Please review the drafted Product Guidelines below. What would you like to do next?
type: "choice"
multiSelect: false
options:
Write File: Once approved, write the generated content to the conductor/product-guidelines.md file.
Continue: Immediately proceed to the next section.
Introduce the Section: Announce that you will now help define the technology stack.
Determine Mode:
ask_user tool to choose the workflow.
ask_user tool:
ask_user tool with type: "text" to allow the user to provide the correct technology stack manually. Once provided, proceed to draft the document using the user's input.Gather Information (Greenfield Interactive Only):
ask_user tool call to gather detailed preferences.
questions array where each object has:
true (Additive) to allow hybrid stacks.label and description. Use the label field to explain why or where a technology fits (e.g., "Typescript - Ideal for Angular UI"). Ensure the options are coherent when combined.Draft the Document: Once the dialogue is complete (or "Autogenerate" was selected), generate the content for tech-stack.md.
User Confirmation Loop:
ask_user tool to request confirmation. You MUST embed the drafted content directly into the question field so the user can review it in context.
header: "Review Draft"
question: Please review the drafted Tech Stack below. What would you like to do next?
type: "choice"
multiSelect: false
options:
Write File: Once approved, write the generated content to the conductor/tech-stack.md file.
Continue: Immediately proceed to the next section.
Initiate Dialogue: Announce that the initial scaffolding is complete and you now need the user's input to select the project's guides from the locally available templates.
Select Code Style Guides:
List the available style guides by using the run_shell_command tool to execute ls ~/.gemini/extensions/conductor/templates/code_styleguides/. CRITICAL: You MUST use run_shell_command for this step. Do NOT use the list_directory tool, as the templates directory resides outside of your allowed workspace and the call will fail.
FOR GREENFIELD PROJECTS:
ask_user tool:
ask_user tool with the batched questions (do not list the questions in the chat).ask_user call containing a questions array with one question per group.trueFOR BROWNFIELD PROJECTS:
ask_user tool:
ask_user tool (do not list the questions in the chat).ask_user tool call. Dynamically split the available guides into batches of 4 options max. Create one multiSelect: true question for each batch.Action: Construct and execute a command to create the directory and copy all selected files. For example: mkdir -p conductor/code_styleguides && cp ~/.gemini/extensions/conductor/templates/code_styleguides/python.md ~/.gemini/extensions/conductor/templates/code_styleguides/javascript.md conductor/code_styleguides/
Continue: Immediately proceed to the next section.
Copy Initial Workflow:
~/.gemini/extensions/conductor/templates/workflow.md to conductor/workflow.md.Determine Mode: Use the ask_user tool to let the user choose their preferred workflow.
Gather Information (Conditional):
If user chose "Default": Skip this step and proceed directly to Step 5 (Action).
If user chose "Customize":
a. Initial Batch: Use a single ask_user tool call to gather primary customizations:
- questions:
- header: "Coverage"
- question: "The default required test code coverage is >80%. What is your preferred percentage?" (type: "text", placeholder: "e.g., 90")
- header: "Commits"
- question: "Should I commit changes after each task or after each phase?"
- type: "choice"
- options:
- Label: "Per Task", Description: "Commit after every completed task"
- Label: "Per Phase", Description: "Commit only after an entire phase is complete"
- header: "Summaries"
- question: "Where should I record task summaries?"
- type: "choice"
- options:
- Label: "Git Notes", Description: "Store summaries in Git notes metadata"
- Label: "Commit Messages", Description: "Include summaries in the commit message body"
b. Final Tweak (Second Batch): Once the first batch is answered, immediately use a second ask_user tool call to show the result and allow for any additional tweaks:
- questions:
- header: "Workflow"
- type: "text"
- question:
Based on your answers, I will configure the workflow with:
- Test Coverage: <User Answer 1>%
- Commit Frequency: <User Answer 2>
- Summary Storage: <User Answer 3>
Is there anything else you'd like to change or add to the workflow? (Leave blank to finish or type your additional requirements).
Action: Update conductor/workflow.md based on all user answers from both steps.
skills/catalog.md from the directory where the Conductor extension is installed (typically ~/.gemini/extensions/conductor/skills/catalog.md).detectSignals matched against project files and conductor/tech-stack.md.ask_user tool to present recommendations and choose an installation path.ask_user tool with a single question:
ask_user call and install selected skills.alwaysRecommend is true, set the path to ~/.agents/extensions/conductor/skills/<skill-name>/..agents/skills/<skill-name>/.party is '1p':
version is provided, download that specific version.url.party is '3p', MUST use the provided commit_sha to download the specific vetted commit.url specified in catalog.md (using the determined strategy) to the determined path.git clone or sparse-checkout to get the folder./skills reload to enable them. Let me know when you have done this." Do NOT use the ask_user tool here.Generate Index File:
conductor/index.md with the following content:
# Project Context
## Definition
- [Product Definition](./product.md)
- [Product Guidelines](./product-guidelines.md)
- [Tech Stack](./tech-stack.md)
## Workflow
- [Workflow](./workflow.md)
- [Code Style Guides](./code_styleguides/)
## Management
- [Tracks Registry](./tracks.md)
- [Tracks Directory](./tracks/)
conductor/index.md to serve as the project context index."Summarize Actions: Present a summary of all actions taken during the initial setup, including:
Transition to initial plan and track generation: Announce that the initial setup is complete and you will now proceed to define the first track for the project.
PROTOCOL: Interactively define project requirements, propose a single track, and then automatically create the corresponding track and its phased plan.
Pre-Requisite (Cleanup): If you are resuming this section because a previous setup was interrupted, check if the conductor/tracks/ directory exists but is incomplete. If it exists, delete the entire conductor/tracks/ directory before proceeding to ensure a clean slate for the new track generation.
Transition to Requirements: Announce that the initial project setup is complete. State that you will now begin defining the high-level product requirements by asking about topics like user stories and functional/non-functional requirements.
Analyze Context: Read and analyze the content of conductor/product.md to understand the project's core concept.
Determine Mode: Use the ask_user tool to let the user choose their preferred workflow.
Gather Information (Conditional):
ask_user tool call to gather detailed requirements.
multiSelect to true for additive answers. Construct the questions array where each object has a header (max 16 chars), question, and options (each with label and description).Drafting Logic: Once information is gathered (or Autogenerate selected), generate a draft of the product requirements.
User Confirmation Loop:
ask_user tool to request confirmation. You MUST embed the drafted requirements directly into the question field so the user can review them.
header: "Review"
question: Please review the drafted Product Requirements below. What would you like to do next?
type: "choice"
multiSelect: false
options:
Continue: Once approved, retain these requirements in your context and immediately proceed to propose a track in the next section.
product.md, tech-stack.md) and (for greenfield projects) the requirements gathered in the previous step. Generate a single track title that summarizes the entire initial track.
ask_user tool to validate the proposal:
ask_user tool again:
State Your Goal: Once the track is approved, announce that you will now create the artifacts for this initial track.
Initialize Tracks File: Create the conductor/tracks.md file with the initial header and the first track:
# Project Tracks
This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder.
---
- [ ] **Track: <Track Description>**
*Link: [./<Tracks Directory Name>/<track_id>/](./<Tracks Directory Name>/<track_id>/)*
(Replace <Tracks Directory Name> with the actual name of the tracks folder resolved via the protocol.)
Generate Track Artifacts:
a. Define Track: The approved title is the track description.
b. Generate Track-Specific Spec & Plan:
i. Automatically generate a detailed spec.md for this track.
ii. Automatically generate a plan.md for this track.
- CRITICAL: The structure of the tasks must adhere to the principles outlined in the workflow file at conductor/workflow.md. For example, if the workflow specificies Test-Driven Development, each feature task must be broken down into a "Write Tests" sub-task followed by an "Implement Feature" sub-task.
- CRITICAL: Include status markers [ ] for EVERY task and sub-task. The format must be:
- Parent Task: - [ ] Task: ...
- Sub-task: - [ ] ...
- CRITICAL: Inject Phase Completion Tasks. You MUST read the conductor/workflow.md file to determine if a "Phase Completion Verification and Checkpointing Protocol" is defined. If this protocol exists, then for each Phase that you generate in plan.md, you MUST append a final meta-task to that phase. The format for this meta-task is: - [ ] Task: Conductor - User Manual Verification '<Phase Name>' (Protocol in workflow.md). You MUST replace <Phase Name> with the actual name of the phase.
c. Create Track Artifacts:
i. Generate and Store Track ID: Create a unique Track ID from the track description using format shortname_YYYYMMDD and store it. You MUST use this exact same ID for all subsequent steps for this track.
ii. Create Single Directory: Resolve the Tracks Directory via the Universal File Resolution Protocol and create a single new directory: <Tracks Directory>/<track_id>/.
iii. Create metadata.json: In the new directory, create a metadata.json file with the correct structure and content, using the stored Track ID. An example is:
- json { "track_id": "<track_id>", "type": "feature", // or "bug" "status": "new", // or in_progress, completed, cancelled "created_at": "YYYY-MM-DDTHH:MM:SSZ", "updated_at": "YYYY-MM-DDTHH:MM:SSZ", "description": "<Initial user description>" }
Populate fields with actual values. Use the current timestamp.
iv. Write Spec and Plan Files: In the exact same directory, write the generated spec.md and plan.md files.
v. Write Index File: In the exact same directory, write index.md with content:
```markdown
# Track <track_id> Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)
```
*(If you arrived here directly from the Audit because you are patching a missing index, write this file using the existing folder's track_id and then proceed to step d.)*
d. Exit Plan Mode: Call the exit_plan_mode tool with the path: <Tracks Directory>/<track_id>/index.md.
e. Announce Progress: Announce that the track for "" has been created.
conductor(setup): Add conductor setup files./conductor:implement.