Compare commits
2 Commits
4b2389231f
...
9725b0ae90
| Author | SHA1 | Date |
|---|---|---|
|
|
9725b0ae90 | |
|
|
182550407c |
|
|
@ -2,6 +2,7 @@
|
|||
diff_output: '' # set at runtime
|
||||
spec_file: '' # set at runtime (path or empty)
|
||||
review_mode: '' # set at runtime: "full" or "no-spec"
|
||||
story_key: '' # set at runtime when discovered from sprint status
|
||||
---
|
||||
|
||||
# Step 1: Gather Context
|
||||
|
|
@ -23,8 +24,8 @@ review_mode: '' # set at runtime: "full" or "no-spec"
|
|||
- When multiple phrases match, prefer the most specific match (e.g., "branch diff" over bare "diff").
|
||||
- **If a clear match is found:** Announce the detected mode (e.g., "Detected intent: review staged changes only") and proceed directly to constructing `{diff_output}` using the corresponding sub-case from instruction 3. Skip to instruction 4 (spec question).
|
||||
- **If no match from invocation text, check sprint tracking.** Look for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for any story with status `review`. Handle as follows:
|
||||
- **Exactly one `review` story:** Suggest it: "I found story {{story-id}} in `review` status. Would you like to review its changes? [Y] Yes / [N] No, let me choose". If confirmed, use the story context to determine the diff source (branch name derived from story slug, or uncommitted changes). If declined, fall through to instruction 2.
|
||||
- **Multiple `review` stories:** Present them as numbered options alongside a manual choice option. Wait for user selection. Then use the selected story's context to determine the diff source as in the single-story case above, and proceed to instruction 3.
|
||||
- **Exactly one `review` story:** Set `{story_key}` to the story's key (e.g., `1-2-user-auth`). Suggest it: "I found story {{story-id}} in `review` status. Would you like to review its changes? [Y] Yes / [N] No, let me choose". If confirmed, use the story context to determine the diff source (branch name derived from story slug, or uncommitted changes). If declined, clear `{story_key}` and fall through to instruction 2.
|
||||
- **Multiple `review` stories:** Present them as numbered options alongside a manual choice option. Wait for user selection. If the user selects a story, set `{story_key}` to the selected story's key and use the selected story's context to determine the diff source as in the single-story case above, and proceed to instruction 3. If the user selects the manual choice, clear `{story_key}` and fall through to instruction 2.
|
||||
- **If no match and no sprint tracking:** Fall through to instruction 2.
|
||||
|
||||
2. HALT. Ask the user: **What do you want to review?** Present these options:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|||
|
||||
### 1. Clean review shortcut
|
||||
|
||||
If zero findings remain after triage (all dismissed or none raised): state that and end the workflow.
|
||||
If zero findings remain after triage (all dismissed or none raised): state that and proceed to section 6 (Sprint Status Update).
|
||||
|
||||
### 2. Write findings to the story file
|
||||
|
||||
|
|
@ -82,3 +82,48 @@ If `{spec_file}` is **not** set, present only options 1 and 3 (omit option 2 —
|
|||
- Patches handled: <P>
|
||||
- Deferred: <W>
|
||||
- Dismissed: <R>
|
||||
|
||||
### 6. Update story status and sync sprint tracking
|
||||
|
||||
Skip this section if `{spec_file}` is not set.
|
||||
|
||||
#### Determine new status based on review outcome
|
||||
|
||||
- If all `decision-needed` and `patch` findings were resolved (fixed or dismissed) AND no unresolved HIGH/MEDIUM issues remain: set `{new_status}` = `done`. Update the story file Status section to `done`.
|
||||
- If `patch` findings were left as action items, or unresolved issues remain: set `{new_status}` = `in-progress`. Update the story file Status section to `in-progress`.
|
||||
|
||||
Save the story file.
|
||||
|
||||
#### Sync sprint-status.yaml
|
||||
|
||||
If `{story_key}` is not set, skip this subsection and note that sprint status was not synced because no story key was available.
|
||||
|
||||
If `{sprint_status}` file exists:
|
||||
|
||||
1. Load the FULL `{sprint_status}` file.
|
||||
2. Find the `development_status` entry matching `{story_key}`.
|
||||
3. If found: update `development_status[{story_key}]` to `{new_status}`. Update `last_updated` to current date. Save the file, preserving ALL comments and structure including STATUS DEFINITIONS.
|
||||
4. If `{story_key}` not found in sprint status: warn the user that the story file was updated but sprint-status sync failed.
|
||||
|
||||
If `{sprint_status}` file does not exist, note that story status was updated in the story file only.
|
||||
|
||||
#### Completion summary
|
||||
|
||||
> **Review Complete!**
|
||||
>
|
||||
> **Story Status:** `{new_status}`
|
||||
> **Issues Fixed:** <fixed_count>
|
||||
> **Action Items Created:** <action_count>
|
||||
> **Deferred:** <W>
|
||||
> **Dismissed:** <R>
|
||||
|
||||
### 7. Next steps
|
||||
|
||||
Present the user with follow-up options:
|
||||
|
||||
> **What would you like to do next?**
|
||||
> 1. **Start the next story** — run `dev-story` to pick up the next `ready-for-dev` story
|
||||
> 2. **Re-run code review** — address findings and review again
|
||||
> 3. **Done** — end the workflow
|
||||
|
||||
**HALT** — I am waiting for your choice. Do not proceed until the user selects an option.
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ Load and read full config from `{main_config}` and resolve:
|
|||
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
|
||||
- `communication_language`, `document_output_language`, `user_skill_level`
|
||||
- `date` as system-generated current datetime
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `project_context` = `**/project-context.md` (load if exists)
|
||||
- CLAUDE.md / memory files (load if exist)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,137 @@
|
|||
---
|
||||
name: bmad-advanced-elicitation
|
||||
description: 'Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g. socratic, first principles, pre-mortem, red team.'
|
||||
agent_party: '{project-root}/_bmad/_config/agent-manifest.csv'
|
||||
---
|
||||
|
||||
Follow the instructions in ./workflow.md.
|
||||
# Advanced Elicitation
|
||||
|
||||
**Goal:** Push the LLM to reconsider, refine, and improve its recent output.
|
||||
|
||||
---
|
||||
|
||||
## CRITICAL LLM INSTRUCTIONS
|
||||
|
||||
- **MANDATORY:** Execute ALL steps in the flow section IN EXACT ORDER
|
||||
- DO NOT skip steps or change the sequence
|
||||
- HALT immediately when halt-conditions are met
|
||||
- Each action within a step is a REQUIRED action to complete that step
|
||||
- Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution
|
||||
- **YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the `communication_language`**
|
||||
|
||||
---
|
||||
|
||||
## INTEGRATION (When Invoked Indirectly)
|
||||
|
||||
When invoked from another prompt or process:
|
||||
|
||||
1. Receive or review the current section content that was just generated
|
||||
2. Apply elicitation methods iteratively to enhance that specific content
|
||||
3. Return the enhanced version back when user selects 'x' to proceed and return back
|
||||
4. The enhanced content replaces the original section content in the output document
|
||||
|
||||
---
|
||||
|
||||
## FLOW
|
||||
|
||||
### Step 1: Method Registry Loading
|
||||
|
||||
**Action:** Load and read `./methods.csv` and `{agent_party}`
|
||||
|
||||
#### CSV Structure
|
||||
|
||||
- **category:** Method grouping (core, structural, risk, etc.)
|
||||
- **method_name:** Display name for the method
|
||||
- **description:** Rich explanation of what the method does, when to use it, and why it's valuable
|
||||
- **output_pattern:** Flexible flow guide using arrows (e.g., "analysis -> insights -> action")
|
||||
|
||||
#### Context Analysis
|
||||
|
||||
- Use conversation history
|
||||
- Analyze: content type, complexity, stakeholder needs, risk level, and creative potential
|
||||
|
||||
#### Smart Selection
|
||||
|
||||
1. Analyze context: Content type, complexity, stakeholder needs, risk level, creative potential
|
||||
2. Parse descriptions: Understand each method's purpose from the rich descriptions in CSV
|
||||
3. Select 5 methods: Choose methods that best match the context based on their descriptions
|
||||
4. Balance approach: Include mix of foundational and specialized techniques as appropriate
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Present Options and Handle Responses
|
||||
|
||||
#### Display Format
|
||||
|
||||
```
|
||||
**Advanced Elicitation Options**
|
||||
_If party mode is active, agents will join in._
|
||||
Choose a number (1-5), [r] to Reshuffle, [a] List All, or [x] to Proceed:
|
||||
|
||||
1. [Method Name]
|
||||
2. [Method Name]
|
||||
3. [Method Name]
|
||||
4. [Method Name]
|
||||
5. [Method Name]
|
||||
r. Reshuffle the list with 5 new options
|
||||
a. List all methods with descriptions
|
||||
x. Proceed / No Further Actions
|
||||
```
|
||||
|
||||
#### Response Handling
|
||||
|
||||
**Case 1-5 (User selects a numbered method):**
|
||||
|
||||
- Execute the selected method using its description from the CSV
|
||||
- Adapt the method's complexity and output format based on the current context
|
||||
- Apply the method creatively to the current section content being enhanced
|
||||
- Display the enhanced version showing what the method revealed or improved
|
||||
- **CRITICAL:** Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.
|
||||
- **CRITICAL:** ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to follow the instructions given by the user.
|
||||
- **CRITICAL:** Re-present the same 1-5,r,x prompt to allow additional elicitations
|
||||
|
||||
**Case r (Reshuffle):**
|
||||
|
||||
- Select 5 random methods from methods.csv, present new list with same prompt format
|
||||
- When selecting, try to think and pick a diverse set of methods covering different categories and approaches, with 1 and 2 being potentially the most useful for the document or section being discovered
|
||||
|
||||
**Case x (Proceed):**
|
||||
|
||||
- Complete elicitation and proceed
|
||||
- Return the fully enhanced content back to the invoking skill
|
||||
- The enhanced content becomes the final version for that section
|
||||
- Signal completion back to the invoking skill to continue with next section
|
||||
|
||||
**Case a (List All):**
|
||||
|
||||
- List all methods with their descriptions from the CSV in a compact table
|
||||
- Allow user to select any method by name or number from the full list
|
||||
- After selection, execute the method as described in the Case 1-5 above
|
||||
|
||||
**Case: Direct Feedback:**
|
||||
|
||||
- Apply changes to current section content and re-present choices
|
||||
|
||||
**Case: Multiple Numbers:**
|
||||
|
||||
- Execute methods in sequence on the content, then re-offer choices
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Execution Guidelines
|
||||
|
||||
- **Method execution:** Use the description from CSV to understand and apply each method
|
||||
- **Output pattern:** Use the pattern as a flexible guide (e.g., "paths -> evaluation -> selection")
|
||||
- **Dynamic adaptation:** Adjust complexity based on content needs (simple to sophisticated)
|
||||
- **Creative application:** Interpret methods flexibly based on context while maintaining pattern consistency
|
||||
- Focus on actionable insights
|
||||
- **Stay relevant:** Tie elicitation to specific content being analyzed (the current section from the document being created unless user indicates otherwise)
|
||||
- **Identify personas:** For single or multi-persona methods, clearly identify viewpoints, and use party members if available in memory already
|
||||
- **Critical loop behavior:** Always re-offer the 1-5,r,a,x choices after each method execution
|
||||
- Continue until user selects 'x' to proceed with enhanced content, confirm or ask the user what should be accepted from the session
|
||||
- Each method application builds upon previous enhancements
|
||||
- **Content preservation:** Track all enhancements made during elicitation
|
||||
- **Iterative enhancement:** Each selected method (1-5) should:
|
||||
1. Apply to the current enhanced version of the content
|
||||
2. Show the improvements made
|
||||
3. Return to the prompt for additional elicitations or completion
|
||||
|
|
|
|||
|
|
@ -1,135 +0,0 @@
|
|||
---
|
||||
agent_party: '{project-root}/_bmad/_config/agent-manifest.csv'
|
||||
---
|
||||
|
||||
# Advanced Elicitation Workflow
|
||||
|
||||
**Goal:** Push the LLM to reconsider, refine, and improve its recent output.
|
||||
|
||||
---
|
||||
|
||||
## CRITICAL LLM INSTRUCTIONS
|
||||
|
||||
- **MANDATORY:** Execute ALL steps in the flow section IN EXACT ORDER
|
||||
- DO NOT skip steps or change the sequence
|
||||
- HALT immediately when halt-conditions are met
|
||||
- Each action within a step is a REQUIRED action to complete that step
|
||||
- Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution
|
||||
- **YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the `communication_language`**
|
||||
|
||||
---
|
||||
|
||||
## INTEGRATION (When Invoked Indirectly)
|
||||
|
||||
When invoked from another prompt or process:
|
||||
|
||||
1. Receive or review the current section content that was just generated
|
||||
2. Apply elicitation methods iteratively to enhance that specific content
|
||||
3. Return the enhanced version back when user selects 'x' to proceed and return back
|
||||
4. The enhanced content replaces the original section content in the output document
|
||||
|
||||
---
|
||||
|
||||
## FLOW
|
||||
|
||||
### Step 1: Method Registry Loading
|
||||
|
||||
**Action:** Load and read `./methods.csv` and `{agent_party}`
|
||||
|
||||
#### CSV Structure
|
||||
|
||||
- **category:** Method grouping (core, structural, risk, etc.)
|
||||
- **method_name:** Display name for the method
|
||||
- **description:** Rich explanation of what the method does, when to use it, and why it's valuable
|
||||
- **output_pattern:** Flexible flow guide using arrows (e.g., "analysis -> insights -> action")
|
||||
|
||||
#### Context Analysis
|
||||
|
||||
- Use conversation history
|
||||
- Analyze: content type, complexity, stakeholder needs, risk level, and creative potential
|
||||
|
||||
#### Smart Selection
|
||||
|
||||
1. Analyze context: Content type, complexity, stakeholder needs, risk level, creative potential
|
||||
2. Parse descriptions: Understand each method's purpose from the rich descriptions in CSV
|
||||
3. Select 5 methods: Choose methods that best match the context based on their descriptions
|
||||
4. Balance approach: Include mix of foundational and specialized techniques as appropriate
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Present Options and Handle Responses
|
||||
|
||||
#### Display Format
|
||||
|
||||
```
|
||||
**Advanced Elicitation Options**
|
||||
_If party mode is active, agents will join in._
|
||||
Choose a number (1-5), [r] to Reshuffle, [a] List All, or [x] to Proceed:
|
||||
|
||||
1. [Method Name]
|
||||
2. [Method Name]
|
||||
3. [Method Name]
|
||||
4. [Method Name]
|
||||
5. [Method Name]
|
||||
r. Reshuffle the list with 5 new options
|
||||
a. List all methods with descriptions
|
||||
x. Proceed / No Further Actions
|
||||
```
|
||||
|
||||
#### Response Handling
|
||||
|
||||
**Case 1-5 (User selects a numbered method):**
|
||||
|
||||
- Execute the selected method using its description from the CSV
|
||||
- Adapt the method's complexity and output format based on the current context
|
||||
- Apply the method creatively to the current section content being enhanced
|
||||
- Display the enhanced version showing what the method revealed or improved
|
||||
- **CRITICAL:** Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.
|
||||
- **CRITICAL:** ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to follow the instructions given by the user.
|
||||
- **CRITICAL:** Re-present the same 1-5,r,x prompt to allow additional elicitations
|
||||
|
||||
**Case r (Reshuffle):**
|
||||
|
||||
- Select 5 random methods from methods.csv, present new list with same prompt format
|
||||
- When selecting, try to think and pick a diverse set of methods covering different categories and approaches, with 1 and 2 being potentially the most useful for the document or section being discovered
|
||||
|
||||
**Case x (Proceed):**
|
||||
|
||||
- Complete elicitation and proceed
|
||||
- Return the fully enhanced content back to the invoking skill
|
||||
- The enhanced content becomes the final version for that section
|
||||
- Signal completion back to the invoking skill to continue with next section
|
||||
|
||||
**Case a (List All):**
|
||||
|
||||
- List all methods with their descriptions from the CSV in a compact table
|
||||
- Allow user to select any method by name or number from the full list
|
||||
- After selection, execute the method as described in the Case 1-5 above
|
||||
|
||||
**Case: Direct Feedback:**
|
||||
|
||||
- Apply changes to current section content and re-present choices
|
||||
|
||||
**Case: Multiple Numbers:**
|
||||
|
||||
- Execute methods in sequence on the content, then re-offer choices
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Execution Guidelines
|
||||
|
||||
- **Method execution:** Use the description from CSV to understand and apply each method
|
||||
- **Output pattern:** Use the pattern as a flexible guide (e.g., "paths -> evaluation -> selection")
|
||||
- **Dynamic adaptation:** Adjust complexity based on content needs (simple to sophisticated)
|
||||
- **Creative application:** Interpret methods flexibly based on context while maintaining pattern consistency
|
||||
- Focus on actionable insights
|
||||
- **Stay relevant:** Tie elicitation to specific content being analyzed (the current section from the document being created unless user indicates otherwise)
|
||||
- **Identify personas:** For single or multi-persona methods, clearly identify viewpoints, and use party members if available in memory already
|
||||
- **Critical loop behavior:** Always re-offer the 1-5,r,a,x choices after each method execution
|
||||
- Continue until user selects 'x' to proceed with enhanced content, confirm or ask the user what should be accepted from the session
|
||||
- Each method application builds upon previous enhancements
|
||||
- **Content preservation:** Track all enhancements made during elicitation
|
||||
- **Iterative enhancement:** Each selected method (1-5) should:
|
||||
1. Apply to the current enhanced version of the content
|
||||
2. Show the improvements made
|
||||
3. Return to the prompt for additional elicitations or completion
|
||||
Loading…
Reference in New Issue