بنقرة واحدة
conductor-setup
Scaffolds the project and sets up the Conductor environment
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Scaffolds the project and sets up the Conductor environment
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Plans a track, generates track-specific spec documents and updates the tracks file
Execute a pre-implementation investigation workflow modeled on feature-dev Phase 1-4 (Discovery, Codebase Exploration, Clarifying Questions, Architecture Design). Use this when requirements are ambiguous, architecture decisions are needed, or external validation (Win32 API, Rust crates, EmEditor SDK) is required before coding in Conductor tracks.
Executes the tasks defined in the specified track's plan
Analyzing GitHub Pull Request review comments and managing follow-up tasks. This skill utilizes GraphQL to efficiently fetch review comments and categorizes them into critical fixes, future improvements, or out-of-scope items. Mandatory when a PR has received feedback to systematically address reviewer suggestions and ensure all necessary changes are tracked in Conductor.
Facilitating the creation of Draft Pull Requests on GitHub using the GitHub CLI (gh). This skill guides the collection of branch diffs, issue context via GraphQL, and the generation of structured PR titles and bodies in Japanese. Mandatory when the current task is ready for review as a draft to ensure all necessary context and issue links are included.
Reverts previous work
| name | conductor: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 Bash 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 Bash 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: generate project index." |
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_value.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_value to select the project's guides from the locally available templates.
Select Code Style Guides:
List the available style guides by using the Bash tool to execute ls ~/.gemini/extensions/conductor/templates/code_styleguides/. CRITICAL: You MUST use Bash 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.
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?
{Insert Drafted Requirements Here}
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.