opencode-conductor-plugin 1.30.2 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +13 -1
- package/dist/prompts/agent/conductor.md +37 -0
- package/dist/prompts/conductor/implement.json +1 -1
- package/dist/prompts/conductor/newTrack.json +1 -1
- package/dist/prompts/conductor/revert.json +1 -1
- package/dist/prompts/conductor/review.json +4 -0
- package/dist/prompts/conductor/setup.json +1 -1
- package/dist/prompts/conductor/status.json +1 -1
- package/dist/templates/code_styleguides/cpp.md +110 -43
- package/dist/templates/code_styleguides/go.md +1 -1
- package/dist/templates/code_styleguides/html-css.md +1 -1
- package/dist/templates/code_styleguides/javascript.md +1 -1
- package/dist/templates/code_styleguides/python.md +1 -1
- package/dist/templates/code_styleguides/typescript.md +1 -1
- package/dist/tools/commands.d.ts +2 -0
- package/dist/tools/commands.js +15 -0
- package/dist/utils/commandFactory.js +16 -7
- package/legacy/GEMINI.md +3 -0
- package/legacy/conductor/.github/workflows/release-please.yml +46 -0
- package/legacy/conductor/.release-please-manifest.json +3 -0
- package/legacy/conductor/CONTRIBUTING.md +33 -0
- package/legacy/conductor/GEMINI.md +3 -0
- package/legacy/conductor/LICENSE +202 -0
- package/legacy/conductor/README.md +122 -0
- package/legacy/conductor/commands/conductor/implement.toml +221 -0
- package/legacy/conductor/commands/conductor/newTrack.toml +178 -0
- package/legacy/conductor/commands/conductor/revert.toml +135 -0
- package/legacy/conductor/commands/conductor/review.toml +233 -0
- package/legacy/conductor/commands/conductor/setup.toml +498 -0
- package/legacy/conductor/commands/conductor/status.toml +57 -0
- package/legacy/conductor/gemini-extension.json +5 -0
- package/legacy/conductor/release-please-config.json +11 -0
- package/legacy/conductor/templates/code_styleguides/csharp.md +115 -0
- package/legacy/conductor/templates/code_styleguides/dart.md +238 -0
- package/legacy/conductor/templates/code_styleguides/general.md +23 -0
- package/legacy/conductor/templates/code_styleguides/go.md +48 -0
- package/legacy/conductor/templates/code_styleguides/html-css.md +49 -0
- package/legacy/conductor/templates/code_styleguides/javascript.md +51 -0
- package/legacy/conductor/templates/code_styleguides/python.md +37 -0
- package/legacy/conductor/templates/code_styleguides/typescript.md +43 -0
- package/legacy/conductor/templates/workflow.md +333 -0
- package/legacy/gemini-extension.json +5 -0
- package/package.json +4 -4
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
description = "Scaffolds the project and sets up the Conductor environment"
|
|
2
|
+
prompt = """
|
|
3
|
+
## 1.0 SYSTEM DIRECTIVE
|
|
4
|
+
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.
|
|
5
|
+
|
|
6
|
+
CRITICAL: You must validate the success of every tool call. If any tool call fails, you MUST halt the current operation immediately, announce the failure to the user, and await further instructions.
|
|
7
|
+
|
|
8
|
+
CRITICAL: When determining model complexity, ALWAYS select the "flash" model, regardless of the task's perceived difficulty.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1.1 PRE-INITIALIZATION OVERVIEW
|
|
13
|
+
1. **Provide High-Level Overview:**
|
|
14
|
+
- Present the following overview of the initialization process to the user:
|
|
15
|
+
> "Welcome to Conductor. I will guide you through the following steps to set up your project:
|
|
16
|
+
> 1. **Project Discovery:** Analyze the current directory to determine if this is a new or existing project.
|
|
17
|
+
> 2. **Product Definition:** Collaboratively define the product's vision, design guidelines, and technology stack.
|
|
18
|
+
> 3. **Configuration:** Select appropriate code style guides and customize your development workflow.
|
|
19
|
+
> 4. **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.
|
|
20
|
+
>
|
|
21
|
+
> Let's get started!"
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1.2 BEGIN `RESUME` CHECK
|
|
26
|
+
**PROTOCOL: Before starting the setup, determine the project's state using the state file.**
|
|
27
|
+
|
|
28
|
+
1. **Read State File:** Check for the existence of `conductor/setup_state.json`.
|
|
29
|
+
- If it does not exist, this is a new project setup. Proceed directly to Step 1.2.
|
|
30
|
+
- If it exists, read its content.
|
|
31
|
+
|
|
32
|
+
2. **Resume Based on State:**
|
|
33
|
+
- Let the value of `last_successful_step` in the JSON file be `STEP`.
|
|
34
|
+
- Based on the value of `STEP`, jump to the **next logical section**:
|
|
35
|
+
|
|
36
|
+
- If `STEP` is "2.1_product_guide", announce "Resuming setup: The Product Guide (`product.md`) is already complete. Next, we will create the Product Guidelines." and proceed to **Section 2.2**.
|
|
37
|
+
- If `STEP` is "2.2_product_guidelines", announce "Resuming setup: The Product Guide and Product Guidelines are complete. Next, we will define the Technology Stack." and proceed to **Section 2.3**.
|
|
38
|
+
- If `STEP` is "2.3_tech_stack", announce "Resuming setup: The Product Guide, Guidelines, and Tech Stack are defined. Next, we will select Code Styleguides." and proceed to **Section 2.4**.
|
|
39
|
+
- If `STEP` is "2.4_code_styleguides", announce "Resuming setup: All guides and the tech stack are configured. Next, we will define the project workflow." and proceed to **Section 2.5**.
|
|
40
|
+
- If `STEP` is "2.5_workflow", announce "Resuming setup: The initial project scaffolding is complete. Next, we will generate the first track." and proceed to **Phase 2 (3.0)**.
|
|
41
|
+
- If `STEP` is "3.3_initial_track_generated":
|
|
42
|
+
- Announce: "The project has already been initialized. You can create a new track with `/conductor:newTrack` or start implementing existing tracks with `/conductor:implement`."
|
|
43
|
+
- Halt the `setup` process.
|
|
44
|
+
- If `STEP` is unrecognized, announce an error and halt.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 2.0 PHASE 1: STREAMLINED PROJECT SETUP
|
|
49
|
+
**PROTOCOL: Follow this sequence to perform a guided, interactive setup with the user.**
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### 2.0 Project Inception
|
|
53
|
+
1. **Detect Project Maturity:**
|
|
54
|
+
- **Classify Project:** Determine if the project is "Brownfield" (Existing) or "Greenfield" (New) based on the following indicators:
|
|
55
|
+
- **Brownfield Indicators:**
|
|
56
|
+
- Check for existence of version control directories: `.git`, `.svn`, or `.hg`.
|
|
57
|
+
- If a `.git` directory exists, execute `git status --porcelain`. If the output is not empty, classify as "Brownfield" (dirty repository).
|
|
58
|
+
- Check for dependency manifests: `package.json`, `pom.xml`, `requirements.txt`, `go.mod`.
|
|
59
|
+
- Check for source code directories: `src/`, `app/`, `lib/` containing code files.
|
|
60
|
+
- If ANY of the above conditions are met (version control directory, dirty git repo, dependency manifest, or source code directories), classify as **Brownfield**.
|
|
61
|
+
- **Greenfield Condition:**
|
|
62
|
+
- Classify as **Greenfield** ONLY if NONE of the "Brownfield Indicators" are found AND the current directory is empty or contains only generic documentation (e.g., a single `README.md` file) without functional code or dependencies.
|
|
63
|
+
|
|
64
|
+
2. **Execute Workflow based on Maturity:**
|
|
65
|
+
- **If Brownfield:**
|
|
66
|
+
- Announce that an existing project has been detected.
|
|
67
|
+
- 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."
|
|
68
|
+
- **Begin Brownfield Project Initialization Protocol:**
|
|
69
|
+
- **1.0 Pre-analysis Confirmation:**
|
|
70
|
+
1. **Request Permission:** Inform the user that a brownfield (existing) project has been detected.
|
|
71
|
+
2. **Ask for Permission:** Request permission for a read-only scan to analyze the project using the `ask_user` tool:
|
|
72
|
+
- **header:** "Permission"
|
|
73
|
+
- **question:** "A brownfield (existing) project has been detected. May I perform a read-only scan to analyze the project?"
|
|
74
|
+
- **type:** "yesno"
|
|
75
|
+
3. **Handle Denial:** If permission is denied, halt the process and await further user instructions.
|
|
76
|
+
4. **Confirmation:** Upon confirmation, proceed to the next step.
|
|
77
|
+
|
|
78
|
+
- **2.0 Code Analysis:**
|
|
79
|
+
1. **Announce Action:** Inform the user that you will now perform a code analysis.
|
|
80
|
+
2. **Prioritize README:** Begin by analyzing the `README.md` file, if it exists.
|
|
81
|
+
3. **Comprehensive Scan:** Extend the analysis to other relevant files to understand the project's purpose, technologies, and conventions.
|
|
82
|
+
|
|
83
|
+
- **2.1 File Size and Relevance Triage:**
|
|
84
|
+
1. **Respect Ignore Files:** Before scanning any files, you MUST check for the existence of `.opencodeignore` 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 `.opencodeignore` should take precedence over `.gitignore` if there are conflicts. This is the primary mechanism for avoiding token-heavy, irrelevant files like `node_modules`.
|
|
85
|
+
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.
|
|
86
|
+
3. **Fallback to Manual Ignores:** ONLY if neither `.opencodeignore` 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'`.
|
|
87
|
+
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.
|
|
88
|
+
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.
|
|
89
|
+
|
|
90
|
+
- **2.2 Extract and Infer Project Context:**
|
|
91
|
+
1. **Strict File Access:** DO NOT ask for more files. Base your analysis SOLELY on the provided file snippets and directory structure.
|
|
92
|
+
2. **Extract Tech Stack:** Analyze the provided content of manifest files to identify:
|
|
93
|
+
- Programming Language
|
|
94
|
+
- Frameworks (frontend and backend)
|
|
95
|
+
- Database Drivers
|
|
96
|
+
3. **Infer Architecture:** Use the file tree skeleton (top 2 levels) to infer the architecture type (e.g., Monorepo, Microservices, MVC).
|
|
97
|
+
4. **Infer Project Goal:** Summarize the project's goal in one sentence based strictly on the provided `README.md` header or `package.json` description.
|
|
98
|
+
- **Upon completing the brownfield initialization protocol, proceed to the Generate Product Guide section in 2.1.**
|
|
99
|
+
- **If Greenfield:**
|
|
100
|
+
- Announce that a new project will be initialized.
|
|
101
|
+
- Proceed to the next step in this file.
|
|
102
|
+
|
|
103
|
+
3. **Initialize Git Repository (for Greenfield):**
|
|
104
|
+
- If a `.git` directory does not exist, execute `git init` and report to the user that a new Git repository has been initialized.
|
|
105
|
+
|
|
106
|
+
4. **Inquire about Project Goal (for Greenfield):**
|
|
107
|
+
- **Ask the user the following question using the `ask_user` tool and wait for their response before proceeding to the next step:**
|
|
108
|
+
- **header:** "Project Goal"
|
|
109
|
+
- **type:** "text"
|
|
110
|
+
- **question:** "What do you want to build?"
|
|
111
|
+
- **placeholder:** "e.g., A mobile app for tracking expenses"
|
|
112
|
+
- **CRITICAL: You MUST NOT execute any tool calls until the user has provided a response.**
|
|
113
|
+
- **Upon receiving the user's response:**
|
|
114
|
+
- Execute `mkdir -p conductor`.
|
|
115
|
+
- **Initialize State File:** Immediately after creating the `conductor` directory, you MUST create `conductor/setup_state.json` with the exact content:
|
|
116
|
+
`{"last_successful_step": ""}`
|
|
117
|
+
- Write the user's response into `conductor/product.md` under a header named `# Initial Concept`.
|
|
118
|
+
|
|
119
|
+
5. **Continue:** Immediately proceed to the next section.
|
|
120
|
+
|
|
121
|
+
### 2.1 Generate Product Guide (Interactive)
|
|
122
|
+
1. **Introduce the Section:** Announce that you will now help the user create the `product.md`.
|
|
123
|
+
2. **Determine Mode:** Use the `ask_user` tool to let the user choose their preferred workflow.
|
|
124
|
+
- **questions:**
|
|
125
|
+
- **header:** "Product"
|
|
126
|
+
- **question:** "How would you like to define the product details? Whether you prefer a quick start or a deep dive, both paths lead to a high-quality product guide!"
|
|
127
|
+
- **type:** "choice"
|
|
128
|
+
- **multiSelect:** false
|
|
129
|
+
- **options:**
|
|
130
|
+
- Label: "Interactive", Description: "I'll guide you through a series of questions to refine your vision."
|
|
131
|
+
- Label: "Autogenerate", Description: "I'll draft a comprehensive guide based on your initial project goal."
|
|
132
|
+
|
|
133
|
+
3. **Gather Information (Conditional):**
|
|
134
|
+
- **If user chose "Autogenerate":** Skip this step and proceed directly to **Step 4 (Draft the Document)**.
|
|
135
|
+
- **If user chose "Interactive":** Use a single `ask_user` tool call to gather detailed requirements (e.g., target users, goals, features).
|
|
136
|
+
- **CRITICAL:** Batch up to 4 questions in this single tool call to streamline the process.
|
|
137
|
+
- **BROWNFIELD PROJECTS:** If this is an existing project, formulate questions that are specifically aware of the analyzed codebase. Do not ask generic questions if the answer is already in the files.
|
|
138
|
+
- **SUGGESTIONS:** For each question, generate 3 high-quality suggested answers based on common patterns or context.
|
|
139
|
+
- **Formulation Guidelines:** Construct the `questions` array where each object has:
|
|
140
|
+
- **header:** Very short label (max 16 chars).
|
|
141
|
+
- **type:** "choice".
|
|
142
|
+
- **multiSelect:** Set to `true` for additive questions, `false` for exclusive choice.
|
|
143
|
+
- **options:** Provide 3 high-quality suggestions with both `label` and `description`. Do NOT include an "Autogenerate" option here.
|
|
144
|
+
- **Note:** The "Other" option for custom input is automatically added by the tool.
|
|
145
|
+
- **Interaction Flow:** Wait for the user's response, then proceed to the next step.
|
|
146
|
+
|
|
147
|
+
4. **Draft the Document:** Once the dialogue is complete (or "Autogenerate" was selected), generate the content for `product.md`.
|
|
148
|
+
- **If user chose "Autogenerate":** Use your best judgment to expand on the initial project goal and infer any missing details to create a comprehensive document.
|
|
149
|
+
- **If user chose "Interactive":** Use the specific answers provided. The source of truth is **only the user's selected answer(s)**. You are encouraged to expand on these choices to create a polished output.
|
|
150
|
+
5. **User Confirmation Loop:**
|
|
151
|
+
- **Announce:** Briefly state that the draft is ready (e.g., "Draft generated."). Do NOT repeat the request to "review" or "approve" in the chat.
|
|
152
|
+
- **Ask for Approval:** Use the `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.
|
|
153
|
+
- **questions:**
|
|
154
|
+
- **header:** "Review"
|
|
155
|
+
- **question:**
|
|
156
|
+
Please review the drafted Product Guide below. What would you like to do next?
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
<Insert Drafted product.md Content Here>
|
|
161
|
+
- **type:** "choice"
|
|
162
|
+
- **multiSelect:** false
|
|
163
|
+
- **options:**
|
|
164
|
+
- Label: "Approve", Description: "The guide looks good, proceed to the next step."
|
|
165
|
+
- Label: "Suggest changes", Description: "I want to modify the drafted content."
|
|
166
|
+
6. **Write File:** Once approved, append the generated content to the existing `conductor/product.md` file, preserving the `# Initial Concept` section.
|
|
167
|
+
7. **Commit State:** Upon successful creation of the file, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
168
|
+
`{"last_successful_step": "2.1_product_guide"}`
|
|
169
|
+
8. **Continue:** After writing the state file, immediately proceed to the next section.
|
|
170
|
+
|
|
171
|
+
### 2.2 Generate Product Guidelines (Interactive)
|
|
172
|
+
1. **Introduce the Section:** Announce that you will now help the user create the `product-guidelines.md`.
|
|
173
|
+
2. **Determine Mode:** Use the `ask_user` tool to let the user choose their preferred workflow.
|
|
174
|
+
- **questions:**
|
|
175
|
+
- **header:** "Product"
|
|
176
|
+
- **question:** "How would you like to define the product guidelines? You can hand-pick the style or let me generate a standard set."
|
|
177
|
+
- **type:** "choice"
|
|
178
|
+
- **multiSelect:** false
|
|
179
|
+
- **options:**
|
|
180
|
+
- Label: "Interactive", Description: "I'll ask you about prose style, branding, and UX principles."
|
|
181
|
+
- Label: "Autogenerate", Description: "I'll draft standard guidelines based on best practices."
|
|
182
|
+
|
|
183
|
+
3. **Gather Information (Conditional):**
|
|
184
|
+
- **If user chose "Autogenerate":** Skip this step and proceed directly to **Step 4 (Draft the Document)**.
|
|
185
|
+
- **If user chose "Interactive":** Use a single `ask_user` tool call to gather detailed preferences.
|
|
186
|
+
- **CRITICAL:** Batch up to 4 questions in this single tool call to streamline the process.
|
|
187
|
+
- **BROWNFIELD PROJECTS:** For existing projects, analyze current docs/code to suggest guidelines that match the established style.
|
|
188
|
+
- **SUGGESTIONS:** For each question, generate 3 high-quality suggested answers based on common patterns or context.
|
|
189
|
+
- **Formulation Guidelines:** Construct the `questions` array where each object has:
|
|
190
|
+
- **header:** Very short label (max 16 chars).
|
|
191
|
+
- **type:** "choice".
|
|
192
|
+
- **multiSelect:** Set to `true` for additive questions, `false` for exclusive choice.
|
|
193
|
+
- **options:** Provide 3 high-quality suggestions with both `label` and `description`. Do NOT include an "Autogenerate" option here.
|
|
194
|
+
- **Note:** The "Other" option for custom input is automatically added by the tool.
|
|
195
|
+
- **Interaction Flow:** Wait for the user's response, then proceed to the next step.
|
|
196
|
+
|
|
197
|
+
4. **Draft the Document:** Once the dialogue is complete (or "Autogenerate" was selected), generate the content for `product-guidelines.md`.
|
|
198
|
+
- **If user chose "Autogenerate":** Use your best judgment to infer standard, high-quality guidelines suitable for the project type.
|
|
199
|
+
- **If user chose "Interactive":** Use the specific answers provided. The source of truth is **only the user's selected answer(s)**. You are encouraged to expand on these choices to create a polished output.
|
|
200
|
+
5. **User Confirmation Loop:**
|
|
201
|
+
- **Announce:** Briefly state that the draft is ready (e.g., "Draft generated."). Do NOT repeat the request to "review" or "approve" in the chat.
|
|
202
|
+
- **Ask for Approval:** Use the `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.
|
|
203
|
+
- **questions:**
|
|
204
|
+
- **header:** "Review"
|
|
205
|
+
- **question:**
|
|
206
|
+
Please review the drafted Product Guidelines below. What would you like to do next?
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
<Insert Drafted product-guidelines.md Content Here>
|
|
211
|
+
- **type:** "choice"
|
|
212
|
+
- **multiSelect:** false
|
|
213
|
+
- **options:**
|
|
214
|
+
- Label: "Approve", Description: "The guidelines look good, proceed to the next step."
|
|
215
|
+
- Label: "Suggest changes", Description: "I want to modify the drafted content."
|
|
216
|
+
6. **Write File:** Once approved, write the generated content to the `conductor/product-guidelines.md` file.
|
|
217
|
+
7. **Commit State:** Upon successful creation of the file, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
218
|
+
`{"last_successful_step": "2.2_product_guidelines"}`
|
|
219
|
+
8. **Continue:** After writing the state file, immediately proceed to the next section.
|
|
220
|
+
|
|
221
|
+
### 2.3 Generate Tech Stack (Interactive)
|
|
222
|
+
1. **Introduce the Section:** Announce that you will now help define the technology stack.
|
|
223
|
+
2. **Determine Mode:**
|
|
224
|
+
- **FOR GREENFIELD PROJECTS:** Use the `ask_user` tool to choose the workflow.
|
|
225
|
+
- **questions:**
|
|
226
|
+
- **header:** "Tech Stack"
|
|
227
|
+
- **question:** "How would you like to define the technology stack? I can recommend a proven stack for your goal or you can hand-pick each component."
|
|
228
|
+
- **type:** "choice"
|
|
229
|
+
- **multiSelect:** false
|
|
230
|
+
- **options:**
|
|
231
|
+
- Label: "Interactive", Description: "I'll ask you to select the language, frameworks, and database."
|
|
232
|
+
- Label: "Autogenerate", Description: "I'll recommend a standard tech stack based on your project goal."
|
|
233
|
+
- **FOR BROWNFIELD PROJECTS:**
|
|
234
|
+
- **CRITICAL WARNING:** Your goal is to document the project's *existing* tech stack, not to propose changes.
|
|
235
|
+
- **State the Inferred Stack:** Based on the code analysis, you MUST state the technology stack that you have inferred in the chat.
|
|
236
|
+
- **Request Confirmation:** After stating the detected stack, you MUST ask the user for confirmation using the `ask_user` tool:
|
|
237
|
+
- **questions:**
|
|
238
|
+
- **header:** "Tech Stack"
|
|
239
|
+
- **question:** "Is the inferred tech stack (listed above) correct?"
|
|
240
|
+
- **type:** "yesno"
|
|
241
|
+
- **Handle Disagreement:** If the user answers 'no' (disputes the suggestion), you MUST immediately call the `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.
|
|
242
|
+
|
|
243
|
+
3. **Gather Information (Greenfield Interactive Only):**
|
|
244
|
+
- **If user chose "Interactive":** Use a single `ask_user` tool call to gather detailed preferences.
|
|
245
|
+
- **CRITICAL:** Batch up to 4 questions in this single tool call, separating concerns (e.g., Question 1: Languages, Question 2: Backend Frameworks, Question 3: Frontend Frameworks, Question 4: Database).
|
|
246
|
+
- **SUGGESTIONS:** For each question, generate 3-4 high-quality suggested answers.
|
|
247
|
+
- **Formulation Guidelines:** Construct the `questions` array where each object has:
|
|
248
|
+
- **header:** Very short label (max 16 chars).
|
|
249
|
+
- **type:** "choice"
|
|
250
|
+
- **multiSelect:** Set to `true` (Additive) to allow hybrid stacks.
|
|
251
|
+
- **options:** Provide descriptive options with both `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.
|
|
252
|
+
- **Note:** Do NOT include an "Autogenerate" option here.
|
|
253
|
+
- **Interaction Flow:** Wait for the user's response, then proceed to the next step.
|
|
254
|
+
|
|
255
|
+
4. **Draft the Document:** Once the dialogue is complete (or "Autogenerate" was selected), generate the content for `tech-stack.md`.
|
|
256
|
+
- **If user chose "Autogenerate":** Use your best judgment to infer a standard, high-quality stack suitable for the project goal.
|
|
257
|
+
- **If user chose "Interactive" or corrected the Brownfield stack:** Use the specific answers provided. The source of truth is **only the user's selected answer(s)**.
|
|
258
|
+
5. **User Confirmation Loop:**
|
|
259
|
+
- **Announce:** Briefly state that the draft is ready (e.g., "Draft generated."). Do NOT repeat the request to "review" or "approve" in the chat.
|
|
260
|
+
- **Ask for Approval:** Use the `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.
|
|
261
|
+
- **questions:**
|
|
262
|
+
- **header:** "Review"
|
|
263
|
+
- **question:**
|
|
264
|
+
Please review the drafted Tech Stack below. What would you like to do next?
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
<Insert Drafted tech-stack.md Content Here>
|
|
269
|
+
- **type:** "choice"
|
|
270
|
+
- **multiSelect:** false
|
|
271
|
+
- **options:**
|
|
272
|
+
- Label: "Approve", Description: "The tech stack looks good, proceed to the next step."
|
|
273
|
+
- Label: "Suggest changes", Description: "I want to modify the drafted content."
|
|
274
|
+
6. **Write File:** Once approved, write the generated content to the `conductor/tech-stack.md` file.
|
|
275
|
+
7. **Commit State:** Upon successful creation of the file, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
276
|
+
`{"last_successful_step": "2.3_tech_stack"}`
|
|
277
|
+
8. **Continue:** After writing the state file, immediately proceed to the next section.
|
|
278
|
+
|
|
279
|
+
### 2.4 Select Guides (Interactive)
|
|
280
|
+
1. **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.
|
|
281
|
+
2. **Select Code Style Guides:**
|
|
282
|
+
- List the available style guides by running `ls {{templatesDir}}/code_styleguides/`.
|
|
283
|
+
- **FOR GREENFIELD PROJECTS:**
|
|
284
|
+
- **Recommendation:** Based on the Tech Stack defined in the previous step, recommend the most appropriate style guide(s) (e.g., "python.md" for a Python project) and explain why.
|
|
285
|
+
- **Determine Mode:** Use the `ask_user` tool:
|
|
286
|
+
- **questions:**
|
|
287
|
+
- **header:** "Code Style Guide"
|
|
288
|
+
- **question:** "How would you like to proceed with the code style guides?"
|
|
289
|
+
- **type:** "choice"
|
|
290
|
+
- **options:**
|
|
291
|
+
- Label: "Recommended", Description: "Use the guides I suggested above."
|
|
292
|
+
- Label: "Select from Library", Description: "Let me hand-pick the guides from the library."
|
|
293
|
+
- **If user chose "Select from Library":**
|
|
294
|
+
- **Batching Strategy:** You MUST split the list of available guides into groups of 3-4 items.
|
|
295
|
+
- **Action:** Announce "I'll present the available guides in groups. Please select all that apply." Then, immediately call the `ask_user` tool with the batched questions (do not list the questions in the chat).
|
|
296
|
+
- **Single Tool Call:** Create one `ask_user` call containing a `questions` array with one question per group.
|
|
297
|
+
- **Constraint Handling:** If the final group has only 1 item, you MUST add a second option labeled "None" to satisfy the tool's requirement of minimum 2 options.
|
|
298
|
+
- **Question Structure:**
|
|
299
|
+
- **header:** "Code Style Guide"
|
|
300
|
+
- **type:** "choice"
|
|
301
|
+
- **multiSelect:** `true`
|
|
302
|
+
- **question:** "Which code style guide(s) would you like to include? (Part X/Y):"
|
|
303
|
+
- **options:** The subset of guides for this group (each with label and description).
|
|
304
|
+
|
|
305
|
+
- **FOR BROWNFIELD PROJECTS:**
|
|
306
|
+
- **Announce Selection:** Inform the user: "Based on the inferred tech stack, I will copy the following code style guides: <list of inferred guides>."
|
|
307
|
+
- **Determine Mode:** Use the `ask_user` tool:
|
|
308
|
+
- **questions:**
|
|
309
|
+
- **header:** "Code Style Guide"
|
|
310
|
+
- **question:** "I've identified these guides for your project. Would you like to proceed or add more?"
|
|
311
|
+
- **type:** "choice"
|
|
312
|
+
- **options:**
|
|
313
|
+
- Label: "Proceed", Description: "Use the suggested guides."
|
|
314
|
+
- Label: "Add More", Description: "Select additional guides from the library."
|
|
315
|
+
- **If user chose "Add More":**
|
|
316
|
+
- **Action:** Announce "I'll present the additional guides. Please select all that apply." Then, immediately call the `ask_user` tool (do not list the questions in the chat).
|
|
317
|
+
- **Method:** Use a single `ask_user` tool call. Dynamically split the available guides into batches of 4 options max. Create one `multiSelect: true` question for each batch.
|
|
318
|
+
|
|
319
|
+
3. **Action:** Construct and execute a command to create the directory and copy all selected files. For example: `mkdir -p conductor/code_styleguides && cp {{templatesDir}}/code_styleguides/python.md {{templatesDir}}/code_styleguides/javascript.md conductor/code_styleguides/`
|
|
320
|
+
4. **Commit State:** Upon successful completion of the copy command, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
321
|
+
`{"last_successful_step": "2.4_code_styleguides"}`
|
|
322
|
+
5. **Continue:** Immediately proceed to the next section.
|
|
323
|
+
|
|
324
|
+
### 2.5 Select Workflow (Interactive)
|
|
325
|
+
1. **Copy Initial Workflow:**
|
|
326
|
+
Copy {{templatesDir}}/workflow.md to conductor/workflow.md.
|
|
327
|
+
2. **Determine Mode:** Use the `ask_user` tool to let the user choose their preferred workflow.
|
|
328
|
+
- **questions:**
|
|
329
|
+
- **header:** "Workflow"
|
|
330
|
+
- **question:** "Do you want to use the default workflow or customize it? The default includes >80% test coverage and per-task commits."
|
|
331
|
+
- **type:** "choice"
|
|
332
|
+
- **options:**
|
|
333
|
+
- Label: "Default", Description: "Use the standard Conductor workflow."
|
|
334
|
+
- Label: "Customize", Description: "I want to adjust coverage requirements and commit frequency."
|
|
335
|
+
|
|
336
|
+
3. **Gather Information (Conditional):**
|
|
337
|
+
- **If user chose "Default":** Skip this step and proceed directly to **Step 5 (Action)**.
|
|
338
|
+
- **If user chose "Customize":**
|
|
339
|
+
a. **Initial Batch:** Use a single `ask_user` tool call to gather primary customizations:
|
|
340
|
+
- **questions:**
|
|
341
|
+
- **header:** "Coverage"
|
|
342
|
+
- **question:** "The default required test code coverage is >80%. What is your preferred percentage?" (type: "text", placeholder: "e.g., 90")
|
|
343
|
+
- **header:** "Commits"
|
|
344
|
+
- **question:** "Should I commit changes after each task or after each phase?"
|
|
345
|
+
- **type:** "choice"
|
|
346
|
+
- **options:**
|
|
347
|
+
- Label: "Per Task", Description: "Commit after every completed task"
|
|
348
|
+
- Label: "Per Phase", Description: "Commit only after an entire phase is complete"
|
|
349
|
+
- **header:** "Summaries"
|
|
350
|
+
- **question:** "Where should I record task summaries?"
|
|
351
|
+
- **type:** "choice"
|
|
352
|
+
- **options:**
|
|
353
|
+
- Label: "Git Notes", Description: "Store summaries in Git notes metadata"
|
|
354
|
+
- Label: "Commit Messages", Description: "Include summaries in the commit message body"
|
|
355
|
+
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:
|
|
356
|
+
- **questions:**
|
|
357
|
+
- **header:** "Workflow"
|
|
358
|
+
- **type:** "text"
|
|
359
|
+
- **question:**
|
|
360
|
+
Based on your answers, I will configure the workflow with:
|
|
361
|
+
- Test Coverage: <User Answer 1>%
|
|
362
|
+
- Commit Frequency: <User Answer 2>
|
|
363
|
+
- Summary Storage: <User Answer 3>
|
|
364
|
+
|
|
365
|
+
Is there anything else you'd like to change or add to the workflow? (Leave blank to finish or type your additional requirements).
|
|
366
|
+
|
|
367
|
+
4. **Action:** Update `conductor/workflow.md` based on all user answers from both steps.
|
|
368
|
+
5. **Commit State:** After the `workflow.md` file is successfully written or updated, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
369
|
+
`{"last_successful_step": "2.5_workflow"}`
|
|
370
|
+
|
|
371
|
+
### 2.6 Finalization
|
|
372
|
+
1. **Generate Index File:**
|
|
373
|
+
- Create `conductor/index.md` with the following content:
|
|
374
|
+
```markdown
|
|
375
|
+
# Project Context
|
|
376
|
+
|
|
377
|
+
## Definition
|
|
378
|
+
- [Product Definition](./product.md)
|
|
379
|
+
- [Product Guidelines](./product-guidelines.md)
|
|
380
|
+
- [Tech Stack](./tech-stack.md)
|
|
381
|
+
|
|
382
|
+
## Workflow
|
|
383
|
+
- [Workflow](./workflow.md)
|
|
384
|
+
- [Code Style Guides](./code_styleguides/)
|
|
385
|
+
|
|
386
|
+
## Management
|
|
387
|
+
- [Tracks Registry](./tracks.md)
|
|
388
|
+
- [Tracks Directory](./tracks/)
|
|
389
|
+
```
|
|
390
|
+
- **Announce:** "Created `conductor/index.md` to serve as the project context index."
|
|
391
|
+
|
|
392
|
+
2. **Summarize Actions:** Present a summary of all actions taken during Phase 1, including:
|
|
393
|
+
- The guide files that were copied.
|
|
394
|
+
- The workflow file that was copied.
|
|
395
|
+
3. **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.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## 3.0 INITIAL PLAN AND TRACK GENERATION
|
|
400
|
+
**PROTOCOL: Interactively define project requirements, propose a single track, and then automatically create the corresponding track and its phased plan.**
|
|
401
|
+
|
|
402
|
+
### 3.1 Generate Product Requirements (Interactive)(For greenfield projects only)
|
|
403
|
+
1. **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.
|
|
404
|
+
2. **Analyze Context:** Read and analyze the content of `conductor/product.md` to understand the project's core concept.
|
|
405
|
+
3. **Determine Mode:** Use the `ask_user` tool to let the user choose their preferred workflow.
|
|
406
|
+
- **questions:**
|
|
407
|
+
- **header:** "Product Reqs"
|
|
408
|
+
- **question:** "How would you like to define the product requirements? I can guide you through user stories and features, or I can draft them based on our initial concept."
|
|
409
|
+
- **type:** "choice"
|
|
410
|
+
- **options:**
|
|
411
|
+
- Label: "Interactive", Description: "I'll guide you through questions about user stories and functional goals."
|
|
412
|
+
- Label: "Autogenerate", Description: "I'll draft the requirements based on the Product Guide."
|
|
413
|
+
|
|
414
|
+
4. **Gather Information (Conditional):**
|
|
415
|
+
- **If user chose "Autogenerate":** Skip this step and proceed directly to **Step 5 (Drafting Logic)**.
|
|
416
|
+
- **If user chose "Interactive":** Use a single `ask_user` tool call to gather detailed requirements.
|
|
417
|
+
- **CRITICAL:** Batch up to 4 questions in this single tool call (e.g., User Stories, Key Features, Constraints, Non-functional Requirements).
|
|
418
|
+
- **SUGGESTIONS:** For each question, generate 3 high-quality suggested answers based on the project goal.
|
|
419
|
+
- **Formulation Guidelines:** Use "choice" type. Set `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`).
|
|
420
|
+
- **Note:** Do NOT include an "Autogenerate" option here.
|
|
421
|
+
- **Interaction Flow:** Wait for the user's response, then proceed to the next step.
|
|
422
|
+
|
|
423
|
+
5. **Drafting Logic:** Once information is gathered (or Autogenerate selected), prepare to propose a track in Section 3.2.
|
|
424
|
+
- **CRITICAL:** When processing user responses or auto-generating content, the source of truth for generation is **only the user's selected answer(s)**.
|
|
425
|
+
6. **Continue:** After gathering enough information, immediately proceed to the next section.
|
|
426
|
+
|
|
427
|
+
### 3.2 Propose a Single Initial Track (Automated + Approval)
|
|
428
|
+
1. **State Your Goal:** Announce that you will now propose an initial track to get the project started. Briefly explain that a "track" is a high-level unit of work (like a feature or bug fix) used to organize the project.
|
|
429
|
+
2. **Generate Track Title:** Analyze the project context (`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.
|
|
430
|
+
- **Greenfield:** Focus on the MVP core (e.g., "Build core tip calculator functionality").
|
|
431
|
+
- **Brownfield:** Focus on maintenance or targeted enhancements (e.g., "Implement user authentication flow").
|
|
432
|
+
3. **Confirm Proposal:** Use the `ask_user` tool to validate and/or refine the proposal in a single step:
|
|
433
|
+
- **questions:**
|
|
434
|
+
- **header:** "Confirm Track"
|
|
435
|
+
- **type:** "text"
|
|
436
|
+
- **question:** "To get the project started, I suggest the following track: '<Track Title>'. If you approve, please type 'ok' (or leave blank). Otherwise, type your preferred track description."
|
|
437
|
+
- **placeholder:** "e.g., Setup CI/CD pipeline"
|
|
438
|
+
4. **Action:** Use the user's response as the source of truth. If the user types 'ok' or leaves it blank, use the suggested '<Track Title>'. If they provide a new description, use that instead. Proceed to **Section 3.3**.
|
|
439
|
+
|
|
440
|
+
### 3.3 Convert the Initial Track into Artifacts (Automated)
|
|
441
|
+
1. **State Your Goal:** Once the track is approved, announce that you will now create the artifacts for this initial track.
|
|
442
|
+
2. **Initialize Tracks File:** Create the `conductor/tracks.md` file with the initial header and the first track:
|
|
443
|
+
```markdown
|
|
444
|
+
# Project Tracks
|
|
445
|
+
|
|
446
|
+
This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder.
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
- [ ] **Track: <Track Description>**
|
|
451
|
+
*Link: [./<Tracks Directory Name>/<track_id>/](./<Tracks Directory Name>/<track_id>/)*
|
|
452
|
+
```
|
|
453
|
+
(Replace `<Tracks Directory Name>` with the actual name of the tracks folder resolved via the protocol.)
|
|
454
|
+
3. **Generate Track Artifacts:**
|
|
455
|
+
a. **Define Track:** The approved title is the track description.
|
|
456
|
+
b. **Generate Track-Specific Spec & Plan:**
|
|
457
|
+
i. Automatically generate a detailed `spec.md` for this track.
|
|
458
|
+
ii. Automatically generate a `plan.md` for this track.
|
|
459
|
+
- **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.
|
|
460
|
+
- **CRITICAL:** Include status markers `[ ]` for **EVERY** task and sub-task. The format must be:
|
|
461
|
+
- Parent Task: `- [ ] Task: ...`
|
|
462
|
+
- Sub-task: ` - [ ] ...`
|
|
463
|
+
- **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.
|
|
464
|
+
c. **Create Track Artifacts:**
|
|
465
|
+
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.
|
|
466
|
+
ii. **Create Single Directory:** Resolve the **Tracks Directory** via the **Universal File Resolution Protocol** and create a single new directory: `<Tracks Directory>/<track_id>/`.
|
|
467
|
+
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:
|
|
468
|
+
- ```json
|
|
469
|
+
{
|
|
470
|
+
"track_id": "<track_id>",
|
|
471
|
+
"type": "feature", // or "bug"
|
|
472
|
+
"status": "new", // or in_progress, completed, cancelled
|
|
473
|
+
"created_at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
474
|
+
"updated_at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
475
|
+
"description": "<Initial user description>"
|
|
476
|
+
}
|
|
477
|
+
```
|
|
478
|
+
Populate fields with actual values. Use the current timestamp.
|
|
479
|
+
iv. **Write Spec and Plan Files:** In the exact same directory, write the generated `spec.md` and `plan.md` files.
|
|
480
|
+
v. **Write Index File:** In the exact same directory, write `index.md` with content:
|
|
481
|
+
```markdown
|
|
482
|
+
# Track <track_id> Context
|
|
483
|
+
|
|
484
|
+
- [Specification](./spec.md)
|
|
485
|
+
- [Implementation Plan](./plan.md)
|
|
486
|
+
- [Metadata](./metadata.json)
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
d. **Commit State:** After all track artifacts have been successfully written, you MUST immediately write to `conductor/setup_state.json` with the exact content:
|
|
490
|
+
`{"last_successful_step": "3.3_initial_track_generated"}`
|
|
491
|
+
|
|
492
|
+
e. **Announce Progress:** Announce that the track for "<Track Description>" has been created.
|
|
493
|
+
|
|
494
|
+
### 3.4 Final Announcement
|
|
495
|
+
1. **Announce Completion:** After the track has been created, announce that the project setup and initial track generation are complete.
|
|
496
|
+
2. **Save Conductor Files:** Add and commit all files with the commit message `conductor(setup): Add conductor setup files`.
|
|
497
|
+
3. **Next Steps:** Inform the user that they can now begin work by running `/conductor:implement`.
|
|
498
|
+
"""
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
description = "Displays the current progress of the project"
|
|
2
|
+
prompt = """
|
|
3
|
+
## 1.0 SYSTEM DIRECTIVE
|
|
4
|
+
You are an AI agent. Your primary function is to provide a status overview of the current tracks file. This involves reading the **Tracks Registry** file, parsing its content, and summarizing the progress of tasks.
|
|
5
|
+
|
|
6
|
+
CRITICAL: You must validate the success of every tool call. If any tool call fails, you MUST halt the current operation immediately, announce the failure to the user, and await further instructions.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## 1.1 SETUP CHECK
|
|
12
|
+
**PROTOCOL: Verify that the Conductor environment is properly set up.**
|
|
13
|
+
|
|
14
|
+
1. **Verify Core Context:** Using the **Universal File Resolution Protocol**, resolve and verify the existence of:
|
|
15
|
+
- **Tracks Registry**
|
|
16
|
+
- **Product Definition**
|
|
17
|
+
- **Tech Stack**
|
|
18
|
+
- **Workflow**
|
|
19
|
+
|
|
20
|
+
2. **Handle Failure:**
|
|
21
|
+
- If ANY of these files are missing, you MUST halt the operation immediately.
|
|
22
|
+
- Announce: "Conductor is not set up. Please run `/conductor:setup` to set up the environment."
|
|
23
|
+
- Do NOT proceed to Status Overview Protocol.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2.0 STATUS OVERVIEW PROTOCOL
|
|
28
|
+
**PROTOCOL: Follow this sequence to provide a status overview.**
|
|
29
|
+
|
|
30
|
+
### 2.1 Read Project Plan
|
|
31
|
+
1. **Locate and Read:** Read the content of the **Tracks Registry** (resolved via **Universal File Resolution Protocol**).
|
|
32
|
+
2. **Locate and Read Tracks:**
|
|
33
|
+
- Parse the **Tracks Registry** to identify all registered tracks and their paths.
|
|
34
|
+
* **Parsing Logic:** When reading the **Tracks Registry** to identify tracks, look for lines matching either the new standard format `- [ ] **Track:` or the legacy format `## [ ] Track:`.
|
|
35
|
+
- For each track, resolve and read its **Implementation Plan** (using **Universal File Resolution Protocol** via the track's index file).
|
|
36
|
+
|
|
37
|
+
### 2.2 Parse and Summarize Plan
|
|
38
|
+
1. **Parse Content:**
|
|
39
|
+
- Identify major project phases/sections (e.g., top-level markdown headings).
|
|
40
|
+
- Identify individual tasks and their current status (e.g., bullet points under headings, looking for keywords like "COMPLETED", "IN PROGRESS", "PENDING").
|
|
41
|
+
2. **Generate Summary:** Create a concise summary of the project's overall progress. This should include:
|
|
42
|
+
- The total number of major phases.
|
|
43
|
+
- The total number of tasks.
|
|
44
|
+
- The number of tasks completed, in progress, and pending.
|
|
45
|
+
|
|
46
|
+
### 2.3 Present Status Overview
|
|
47
|
+
1. **Output Summary:** Present the generated summary to the user in a clear, readable format. The status report must include:
|
|
48
|
+
- **Current Date/Time:** The current timestamp.
|
|
49
|
+
- **Project Status:** A high-level summary of progress (e.g., "On Track", "Behind Schedule", "Blocked").
|
|
50
|
+
- **Current Phase and Task:** The specific phase and task currently marked as "IN PROGRESS".
|
|
51
|
+
- **Next Action Needed:** The next task listed as "PENDING".
|
|
52
|
+
- **Blockers:** Any items explicitly marked as blockers in the plan.
|
|
53
|
+
- **Phases (total):** The total number of major phases.
|
|
54
|
+
- **Tasks (total):** The total number of tasks.
|
|
55
|
+
- **Progress:** The overall progress of the plan, presented as tasks_completed/tasks_total (percentage_completed%).
|
|
56
|
+
|
|
57
|
+
"""
|