ICAS03 commited on
Commit
0872dd8
·
1 Parent(s): af6f39f

- fix step 2

Browse files

- fix calculate mandays

Files changed (5) hide show
  1. Project.py +80 -59
  2. common_functions_v4.py +24 -25
  3. event_handler.py +26 -10
  4. prompt_configs.py +565 -642
  5. sample_permutations.py +3 -0
Project.py CHANGED
@@ -519,12 +519,6 @@ class Project:
519
  yield f"Error in {function_name}: {str(e)}", results
520
  continue
521
 
522
- # Add the revised_mvp_estimates to the results
523
- results.append({
524
- "function_name": "revised_mandays_estimates",
525
- "result": revised_mvp_estimates
526
- })
527
-
528
  yield "Components analysis completed!", results
529
 
530
  except Exception as e:
@@ -569,7 +563,7 @@ class Project:
569
  input_vars = {}
570
  prompt_config = PROMPTS[function_name]
571
  for input_name in prompt_config.inputs:
572
- for prev_result in state.generation_results.get('step_2_c', [])[-1]:
573
  if prev_result['function_name'] == input_name:
574
  ui_config = PROMPTS[input_name].ui
575
  dataframe_output_key = next(
@@ -594,46 +588,45 @@ class Project:
594
 
595
  yield f"Successfully completed {function_name}", results
596
 
597
-
598
  except Exception as e:
599
  print(f"Error executing {function_name}: {str(e)}")
600
  yield f"Error in {function_name}: {str(e)}", results
601
  continue
602
 
603
- yield "MVP Mandays generation completed!", results
604
 
605
  except Exception as e:
606
- print(f"Error in generating MVP mandays: {str(e)}")
607
- yield f"Error in generating MVP mandays: {str(e)}", []
608
 
609
  def generate_mvp_mandays(self, progress=gr.Progress()):
610
  """Generate MVP Mandays"""
611
  results = []
612
 
613
- yield "Generating MVP Mandays...", results , None
614
 
615
  try:
616
  if not hasattr(self, 'config'):
617
- yield "Configuration not found.", [] , None
618
  return
619
 
620
  config = self.config
621
  configuration_type = config[0]["configuration_type"]
622
 
623
- yield f"Configuration type detected: {configuration_type}", [] , None
624
 
625
  # Map configuration type to enum
626
  try:
627
  config_enum = ConfigurationType(configuration_type)
628
  except ValueError:
629
- yield f"Unsupported configuration type: {configuration_type}", [] , None
630
  return
631
 
632
  # Get functions to execute based on configuration type
633
  functions_to_execute = GENERATE_MVP_MANDAYS_FUNCTIONS.get(config_enum, [])
634
 
635
  if not functions_to_execute:
636
- yield f"No functions defined for configuration type: {configuration_type}", [] , None
637
  return
638
 
639
  for function_name in functions_to_execute:
@@ -643,42 +636,48 @@ class Project:
643
  # Get the required input variables from the previous generation results
644
  input_vars = {}
645
  prompt_config = PROMPTS[function_name]
 
646
  for input_name in prompt_config.inputs:
647
- for prev_result in state.generation_results.get('step_2_b', [])[-1]:
648
- if prev_result['function_name'] == input_name:
649
- ui_config = PROMPTS[input_name].ui
650
- dataframe_output_key = next(
651
- (key for key in ui_config if key.endswith('_dataframe')),
652
- None
653
- )
654
- if dataframe_output_key:
655
- input_vars[input_name] = prev_result['result'][dataframe_output_key]
656
- else:
657
- input_vars[input_name] = prev_result['result']
658
- break
659
 
660
  # Execute the prompt with gathered input variables
661
  result = self.execute_prompt(function_name, input_vars)
662
 
 
 
 
 
 
663
  # Process CSV sections
664
  sections = result.split("---SECTION BREAK---")
665
  processed_result = {}
666
 
667
  if len(sections) >= 2:
668
  plan_test_csv = StringIO(sections[0].strip())
669
- plan_test_df = pd.read_csv(plan_test_csv)
670
- processed_result['mvp_plan_test_dataframe'] = plan_test_df
671
 
672
- # Process Development Components
673
  dev_csv = StringIO(sections[1].strip())
674
- dev_df = pd.read_csv(dev_csv)
675
- processed_result['mvp_dev_dataframe'] = dev_df
676
 
677
  if len(sections) >= 3 and 'generate_engage_MVP_mandays' in function_name:
678
  # Process MVP Intents for Engage projects
679
  intents_csv = StringIO(sections[2].strip())
680
- intents_df = pd.read_csv(intents_csv)
681
- processed_result['mvp_intents_dataframe'] = intents_df
682
 
683
  # Format and store results
684
  formatted_result = {
@@ -687,28 +686,32 @@ class Project:
687
  }
688
  results.append(formatted_result)
689
 
690
- yield f"Successfully completed {function_name}", results , None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
691
 
692
  except Exception as e:
693
  print(f"Error executing {function_name}: {str(e)}")
694
- yield f"Error in {function_name}: {str(e)}", results , None
695
  continue
696
-
697
- # Calculate MVP Mandays
698
- total_mvp_mandays, total_mvp_cost, estimated_mvp_months = calculate_mvp_mandays_and_costs(results)
699
- mvp_cost_summary = f"""Original Estimate:
700
- Total Mandays: {total_mvp_mandays:.2f}
701
- Total Cost: ${total_mvp_cost:,.2f}
702
- ({estimated_mvp_months:.2f} months)"""
703
-
704
- combined_cost_summary = f"""{self.general_cost_summary}
705
- {mvp_cost_summary}"""
706
-
707
- yield "MVP Mandays generation completed!", results , combined_cost_summary
708
 
709
  except Exception as e:
710
  print(f"Error in generating MVP mandays: {str(e)}")
711
- yield f"Error in generating MVP mandays: {str(e)}", [] , None
712
 
713
  ## Generate Final Documentation ##
714
  def generate_final_documentation(self, progress=gr.Progress()):
@@ -717,7 +720,7 @@ class Project:
717
 
718
  try:
719
  if not hasattr(self, 'config'):
720
- yield "Configuration not found. Please run 'generate_prd_and_components' first.", []
721
  return
722
 
723
  config = self.config
@@ -746,16 +749,34 @@ class Project:
746
  # Get the required input variables from the previous generation results
747
  input_vars = {}
748
  prompt_config = PROMPTS[function_name]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
749
  for input_name in prompt_config.inputs:
750
- for prev_result in state.generation_results.get('step_2_c', [])[-1]:
751
  if prev_result['function_name'] == input_name:
752
  ui_config = PROMPTS[input_name].ui
753
- dataframe_output_key = next(
754
- (key for key in ui_config if key.endswith('_dataframe')),
755
  None
756
  )
757
- if dataframe_output_key:
758
- input_vars[input_name] = prev_result['result'][dataframe_output_key]
759
  else:
760
  input_vars[input_name] = prev_result['result']
761
  break
@@ -778,11 +799,11 @@ class Project:
778
  yield f"Error in {function_name}: {str(e)}", results
779
  continue
780
 
781
- yield "MVP Mandays generation completed!", results
782
 
783
  except Exception as e:
784
- print(f"Error in generating MVP mandays: {str(e)}")
785
- yield f"Error in generating MVP mandays: {str(e)}", []
786
 
787
 
788
 
 
519
  yield f"Error in {function_name}: {str(e)}", results
520
  continue
521
 
 
 
 
 
 
 
522
  yield "Components analysis completed!", results
523
 
524
  except Exception as e:
 
563
  input_vars = {}
564
  prompt_config = PROMPTS[function_name]
565
  for input_name in prompt_config.inputs:
566
+ for prev_result in state.generation_results.get('step_2_b', [])[-1]:
567
  if prev_result['function_name'] == input_name:
568
  ui_config = PROMPTS[input_name].ui
569
  dataframe_output_key = next(
 
588
 
589
  yield f"Successfully completed {function_name}", results
590
 
 
591
  except Exception as e:
592
  print(f"Error executing {function_name}: {str(e)}")
593
  yield f"Error in {function_name}: {str(e)}", results
594
  continue
595
 
596
+ yield "MVP Mandays recalculation completed!", results
597
 
598
  except Exception as e:
599
+ print(f"Error in recalculating MVP mandays: {str(e)}")
600
+ yield f"Error in recalculating MVP mandays: {str(e)}", []
601
 
602
  def generate_mvp_mandays(self, progress=gr.Progress()):
603
  """Generate MVP Mandays"""
604
  results = []
605
 
606
+ yield "Generating MVP Mandays...", results, None
607
 
608
  try:
609
  if not hasattr(self, 'config'):
610
+ yield "Configuration not found.", [], None
611
  return
612
 
613
  config = self.config
614
  configuration_type = config[0]["configuration_type"]
615
 
616
+ yield f"Configuration type detected: {configuration_type}", [], None
617
 
618
  # Map configuration type to enum
619
  try:
620
  config_enum = ConfigurationType(configuration_type)
621
  except ValueError:
622
+ yield f"Unsupported configuration type: {configuration_type}", [], None
623
  return
624
 
625
  # Get functions to execute based on configuration type
626
  functions_to_execute = GENERATE_MVP_MANDAYS_FUNCTIONS.get(config_enum, [])
627
 
628
  if not functions_to_execute:
629
+ yield f"No functions defined for configuration type: {configuration_type}", [], None
630
  return
631
 
632
  for function_name in functions_to_execute:
 
636
  # Get the required input variables from the previous generation results
637
  input_vars = {}
638
  prompt_config = PROMPTS[function_name]
639
+
640
  for input_name in prompt_config.inputs:
641
+ for prev_result in state.generation_results.get('step_2_c', [])[-1]:
642
+ if prev_result['function_name'] == input_name:
643
+ ui_config = PROMPTS[input_name].ui
644
+ text_output_key = next(
645
+ (key for key in ui_config if key.endswith('_text')),
646
+ None
647
+ )
648
+ if text_output_key:
649
+ input_vars[input_name] = prev_result['result'][text_output_key]
650
+ else:
651
+ input_vars[input_name] = prev_result['result']
652
+ break
653
 
654
  # Execute the prompt with gathered input variables
655
  result = self.execute_prompt(function_name, input_vars)
656
 
657
+ # Clean up the result by removing CSV markers and any other formatting
658
+ result = (result.replace("```csv", "")
659
+ .replace("```", "")
660
+ .strip())
661
+
662
  # Process CSV sections
663
  sections = result.split("---SECTION BREAK---")
664
  processed_result = {}
665
 
666
  if len(sections) >= 2:
667
  plan_test_csv = StringIO(sections[0].strip())
668
+ plan_test_df = pd.read_csv(plan_test_csv, keep_default_na=False)
669
+ processed_result['mvp_plan_test_dataframe'] = plan_test_df.to_dict('records')
670
 
671
+ # Process Development Components - ensure all columns are preserved
672
  dev_csv = StringIO(sections[1].strip())
673
+ dev_df = pd.read_csv(dev_csv, keep_default_na=False)
674
+ processed_result['mvp_dev_dataframe'] = dev_df.to_dict('records')
675
 
676
  if len(sections) >= 3 and 'generate_engage_MVP_mandays' in function_name:
677
  # Process MVP Intents for Engage projects
678
  intents_csv = StringIO(sections[2].strip())
679
+ intents_df = pd.read_csv(intents_csv, keep_default_na=False)
680
+ processed_result['mvp_intents_dataframe'] = intents_df.to_dict('records')
681
 
682
  # Format and store results
683
  formatted_result = {
 
686
  }
687
  results.append(formatted_result)
688
 
689
+ yield f"Successfully completed {function_name}", results, None
690
+
691
+ # Calculate MVP Mandays
692
+ total_mvp_mandays, total_mvp_cost, estimated_mvp_months = calculate_mvp_mandays_and_costs(results)
693
+ mvp_cost_summary = f"""MVP Estimate:
694
+ Total Mandays: {total_mvp_mandays:.2f}
695
+ Total Cost: ${total_mvp_cost:,.2f}
696
+ ({estimated_mvp_months:.2f} months)"""
697
+
698
+ # Initialize combined_cost_summary if general_cost_summary doesn't exist
699
+ if hasattr(self, 'general_cost_summary'):
700
+ self.combined_cost_summary = f"""{self.general_cost_summary}
701
+ {mvp_cost_summary}"""
702
+ else:
703
+ self.combined_cost_summary = mvp_cost_summary
704
 
705
  except Exception as e:
706
  print(f"Error executing {function_name}: {str(e)}")
707
+ yield f"Error in {function_name}: {str(e)}", results, None
708
  continue
709
+
710
+ yield "MVP Mandays generation completed!", results, self.combined_cost_summary
 
 
 
 
 
 
 
 
 
 
711
 
712
  except Exception as e:
713
  print(f"Error in generating MVP mandays: {str(e)}")
714
+ yield f"Error in generating MVP mandays: {str(e)}", [], None
715
 
716
  ## Generate Final Documentation ##
717
  def generate_final_documentation(self, progress=gr.Progress()):
 
720
 
721
  try:
722
  if not hasattr(self, 'config'):
723
+ yield "Configuration not found.", []
724
  return
725
 
726
  config = self.config
 
749
  # Get the required input variables from the previous generation results
750
  input_vars = {}
751
  prompt_config = PROMPTS[function_name]
752
+ if hasattr(self, 'combined_cost_summary'):
753
+ input_vars['quotation_cost'] = self.combined_cost_summary
754
+ else:
755
+ input_vars['quotation_cost'] = None
756
+
757
+ for prev_result in state.generation_results.get('step_2_d', [])[-1]:
758
+ if prev_result['function_name'] == input_name:
759
+ ui_config = PROMPTS[input_name].ui
760
+ dataframe_output_key = next(
761
+ (key for key in ui_config if key.endswith('_dataframe')),
762
+ None
763
+ )
764
+ if dataframe_output_key:
765
+ input_vars[input_name] = prev_result['result'][dataframe_output_key]
766
+ else:
767
+ input_vars[input_name] = prev_result['result']
768
+ break
769
+
770
  for input_name in prompt_config.inputs:
771
+ for prev_result in state.generation_results.get('step_1', [])[-1]:
772
  if prev_result['function_name'] == input_name:
773
  ui_config = PROMPTS[input_name].ui
774
+ text_output_key = next(
775
+ (key for key in ui_config if key.endswith('_text')),
776
  None
777
  )
778
+ if text_output_key:
779
+ input_vars[input_name] = prev_result['result'][text_output_key]
780
  else:
781
  input_vars[input_name] = prev_result['result']
782
  break
 
799
  yield f"Error in {function_name}: {str(e)}", results
800
  continue
801
 
802
+ yield "Final Documentation Generation completed!", results
803
 
804
  except Exception as e:
805
+ print(f"Error in generating Final Documentation: {str(e)}")
806
+ yield f"Error in generating Final Documentation: {str(e)}", []
807
 
808
 
809
 
common_functions_v4.py CHANGED
@@ -206,44 +206,43 @@ def calculate_mandays_and_costs(generated_results=None):
206
  print(f"Error calculating mandays and costs: {str(e)}")
207
  return tuple([None] * 3)
208
 
209
- def calculate_mvp_mandays_and_costs(generated_results=None):
210
  try:
211
  total_mvp_mandays = 0
212
- if generated_results:
213
- for result in generated_results:
214
- if 'result' in result:
215
- result_content = result['result']
216
- # Check if result is a CSV string
217
- if isinstance(result_content, str):
 
 
 
 
 
 
 
 
 
 
218
  try:
219
- # Convert the CSV string to a dataframe
220
- df = pd.read_csv(StringIO(result_content))
221
-
222
- # Check if 'mandays' column exists (case-insensitive)
223
- mandays_col = next((col for col in df.columns if col.lower() == 'mandays'), None)
224
- if mandays_col:
225
- total_mvp_mandays += df[mandays_col].astype(float).sum()
226
- print(f"Added {df[mandays_col].sum()} mandays from {result.get('function_name', 'unknown')}")
227
-
228
- except Exception as e:
229
- print(f"Error parsing CSV: {str(e)}")
230
- continue
231
- # Handle dictionary format (keeping for backward compatibility)
232
- elif isinstance(result_content, dict) and 'mandays' in result_content:
233
- total_mvp_mandays += float(result_content['mandays'])
234
 
235
  # Calculate costs based on total mandays
236
  total_mvp_cost = 1500 * total_mvp_mandays
237
- estimated_mvp_months = total_mvp_mandays/30
238
 
239
  return (
240
  total_mvp_mandays,
241
  total_mvp_cost,
242
  estimated_mvp_months
243
  )
 
244
  except Exception as e:
245
- print(f"Error calculating mandays and costs: {str(e)}")
246
- return tuple([None] * 3)
247
 
248
  def create_new_session():
249
  """Create a new session in the database and return the session_id"""
 
206
  print(f"Error calculating mandays and costs: {str(e)}")
207
  return tuple([None] * 3)
208
 
209
+ def calculate_mvp_mandays_and_costs(generated_mvp_results):
210
  try:
211
  total_mvp_mandays = 0
212
+
213
+ # Process results from each function
214
+ for result in generated_mvp_results:
215
+ if not result.get('result'):
216
+ continue
217
+
218
+ # Process all dataframes in the result that end with '_dataframe'
219
+ for key, data in result['result'].items():
220
+ if not key.endswith('_dataframe') or not isinstance(data, list):
221
+ continue
222
+
223
+ # Sum mandays from each item in the dataframe
224
+ for item in data:
225
+ manday_key = next((k for k in item.keys()
226
+ if 'manday' in k.lower()), None)
227
+ if manday_key:
228
  try:
229
+ total_mvp_mandays += float(item[manday_key])
230
+ except (ValueError, TypeError):
231
+ print(f"Warning: Invalid mandays value: {item[manday_key]}")
 
 
 
 
 
 
 
 
 
 
 
 
232
 
233
  # Calculate costs based on total mandays
234
  total_mvp_cost = 1500 * total_mvp_mandays
235
+ estimated_mvp_months = total_mvp_mandays / 30
236
 
237
  return (
238
  total_mvp_mandays,
239
  total_mvp_cost,
240
  estimated_mvp_months
241
  )
242
+
243
  except Exception as e:
244
+ print(f"Error calculating MVP mandays and costs: {str(e)}")
245
+ return 0, 0, 0
246
 
247
  def create_new_session():
248
  """Create a new session in the database and return the session_id"""
event_handler.py CHANGED
@@ -75,21 +75,21 @@ def generate_step_2_c(progress=gr.Progress()) -> Generator[Tuple[str, list], Any
75
  print(f"Error during generation: {str(e)}")
76
  yield f"Error during generation: {str(e)}", []
77
 
78
- def generate_step_2_d(progress=gr.Progress()) -> Generator[Tuple[str, list], Any, None]:
79
  """Generate content using the Project instance"""
80
  try:
81
  # Initialize results for this step
82
  step_results = []
83
 
84
  # Generate mandays estimate, yielding results as they're generated
85
- for status_msg, result in state.quotation_project.generate_mandays_estimate(progress):
86
  step_results.append(result)
87
  state.generation_results['step_2_d'] = step_results
88
- yield status_msg, step_results
89
 
90
  except Exception as e:
91
  print(f"Error during generation: {str(e)}")
92
- yield f"Error during generation: {str(e)}", []
93
 
94
  def generate_step_3(progress=gr.Progress()) -> Generator[Tuple[str, list], Any, None]:
95
  """Generate content using the Project instance"""
@@ -204,7 +204,6 @@ def upload_to_gdrive(folder_name, generation_result, progress=gr.Progress()):
204
  return f"Failed to upload files. Error: {e}"
205
 
206
 
207
-
208
  def setup_all_handlers(step_buttons, all_components, progress_update, quotation_cost=None, recalc_btn=None, upload_drive_btn=None, upload_notion_btn=None, project_name=None, generation_results=None):
209
  """Set up all step handlers with the provided UI components"""
210
  # Modified button click chain
@@ -235,6 +234,12 @@ def setup_all_handlers(step_buttons, all_components, progress_update, quotation_
235
 
236
  step_buttons['Step 2.4 : Generate MVP Mandays'].click(
237
  fn=generate_step_2_d,
 
 
 
 
 
 
238
  outputs=[progress_update, generation_results],
239
  queue=True
240
  )
@@ -267,8 +272,8 @@ def create_render_results(step, generation_results):
267
  step_to_state_key = {
268
  "Step 2.1 : Generate Mandays": "step_2_a",
269
  "Step 2.2 : Analyze MVP Components": "step_2_b",
270
- "Step 2.3 : Generate MVP Mandays": "step_2_c",
271
- "Step 2.4 : Recalculate MVP Mandays": "step_2_d",
272
  }
273
 
274
  # Get the relevant results based on the step
@@ -313,10 +318,21 @@ def create_render_results(step, generation_results):
313
 
314
  # Special handling for Step 2 results
315
  if step.startswith("Step 2"):
316
- with gr.Accordion(f"{description}", open=True):
317
- if isinstance(result, str):
 
 
 
 
 
 
 
 
 
 
 
 
318
  try:
319
- # Convert markdown table to dataframe
320
  df = pd.read_csv(
321
  StringIO(result.replace('|', ',').replace('\n\n', '\n')),
322
  sep=',',
 
75
  print(f"Error during generation: {str(e)}")
76
  yield f"Error during generation: {str(e)}", []
77
 
78
+ def generate_step_2_d(progress=gr.Progress()) -> Generator[Tuple[str, list, str], Any, None]:
79
  """Generate content using the Project instance"""
80
  try:
81
  # Initialize results for this step
82
  step_results = []
83
 
84
  # Generate mandays estimate, yielding results as they're generated
85
+ for status_msg, result , quotation_cost in state.quotation_project.generate_mvp_mandays(progress):
86
  step_results.append(result)
87
  state.generation_results['step_2_d'] = step_results
88
+ yield status_msg, step_results , quotation_cost
89
 
90
  except Exception as e:
91
  print(f"Error during generation: {str(e)}")
92
+ yield f"Error during generation: {str(e)}", [] , None
93
 
94
  def generate_step_3(progress=gr.Progress()) -> Generator[Tuple[str, list], Any, None]:
95
  """Generate content using the Project instance"""
 
204
  return f"Failed to upload files. Error: {e}"
205
 
206
 
 
207
  def setup_all_handlers(step_buttons, all_components, progress_update, quotation_cost=None, recalc_btn=None, upload_drive_btn=None, upload_notion_btn=None, project_name=None, generation_results=None):
208
  """Set up all step handlers with the provided UI components"""
209
  # Modified button click chain
 
234
 
235
  step_buttons['Step 2.4 : Generate MVP Mandays'].click(
236
  fn=generate_step_2_d,
237
+ outputs=[progress_update, generation_results , quotation_cost],
238
+ queue=True
239
+ )
240
+
241
+ step_buttons['Step 3 : Final Documentation'].click(
242
+ fn=generate_step_3,
243
  outputs=[progress_update, generation_results],
244
  queue=True
245
  )
 
272
  step_to_state_key = {
273
  "Step 2.1 : Generate Mandays": "step_2_a",
274
  "Step 2.2 : Analyze MVP Components": "step_2_b",
275
+ "Step 2.3 : Recalculate MVP Mandays": "step_2_c",
276
+ "Step 2.4 : Generate MVP Mandays": "step_2_d",
277
  }
278
 
279
  # Get the relevant results based on the step
 
318
 
319
  # Special handling for Step 2 results
320
  if step.startswith("Step 2"):
321
+ with gr.Accordion(f"{description}", open=False):
322
+ if isinstance(result, dict) and any(key.endswith('_dataframe') for key in result.keys()):
323
+ # Handle multiple dataframes
324
+ for key, data in result.items():
325
+ if key.endswith('_dataframe'):
326
+ df = pd.DataFrame(data)
327
+ result_components.append(
328
+ gr.Dataframe(
329
+ value=df,
330
+ label=key.replace('_dataframe', '').replace('_', ' ').title(),
331
+ interactive=False
332
+ )
333
+ )
334
+ elif isinstance(result, str):
335
  try:
 
336
  df = pd.read_csv(
337
  StringIO(result.replace('|', ',').replace('\n\n', '\n')),
338
  sep=',',
prompt_configs.py CHANGED
@@ -1124,867 +1124,790 @@ PROMPTS = {
1124
  )
1125
  }
1126
  ),
1127
-
1128
- "generate_page_MVP_prd": PromptConfig(
1129
  prompt=
1130
  """
1131
- Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
1132
- 1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
1133
- 2. **Revised Mandays Estimates**: Incorporate the specific MVP components, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
1134
 
1135
- Follow these instructions:
1136
- - Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
1137
- - Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
1138
- - Do not add any context or assumptions beyond the provided inputs.
1139
- - Do not exclude any details from the inputs.
1140
- - Structure the document to ensure clarity, logical flow, and readability and use tabular format whenever possible.
1141
- - Use the title "Project Requirements" for the document.
1142
 
1143
- The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
 
 
 
 
 
 
 
 
 
 
 
 
 
1144
  """,
1145
- inputs=["generated_prd" , "revised_mandays_estimates"],
1146
- outputs=["generated_mvp_prd"],
1147
  model=ModelType.O1_MINI,
1148
- description="Step 3.1 : Generate MVP PRD",
1149
- step="Step 3 : Final Documentation",
 
1150
  ui={
1151
- "mvp_prd_prompt_editor": UIConfig(
1152
  component_type=UIComponentType.TEXTBOX,
1153
- label="MVP PRD System Prompt",
1154
  lines=20,
1155
  interactive=True
1156
  ),
1157
- "generated_mvp_prd_text": UIConfig(
1158
- component_type=UIComponentType.TEXTBOX,
1159
- label="MVP PRD Output",
1160
  lines=20,
1161
- visible=True
1162
- ),
1163
- "generated_mvp_prd_markdown": UIConfig(
1164
- component_type=UIComponentType.MARKDOWN,
1165
- label="MVP PRD Output",
1166
- visible=True,
1167
- show_copy_button=True
1168
  )
1169
  }
1170
  ),
1171
 
1172
- "generate_engage_MVP_prd": PromptConfig(
1173
  prompt=
1174
  """
1175
- Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
1176
- 1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
1177
- 2. **Revised Mandays Estimates**: Incorporate the specific MVP components & intents, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
1178
 
1179
- Follow these instructions:
1180
- - Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
1181
- - Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
1182
- - Do not add any context or assumptions beyond the provided inputs.
1183
- - Do not exclude any details from the inputs.
1184
- - Structure the document to ensure clarity, logical flow, and readability and structure tabular format if necessary.
1185
- - Use the title "Project Requirements" for the document.
1186
 
1187
- The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188
  """,
1189
- inputs=["generated_prd" , "revised_mandays_estimates"],
1190
- outputs=["generated_mvp_prd"],
1191
  model=ModelType.O1_MINI,
1192
- description="Step 3.1 : Generate MVP PRD",
1193
- step="Step 3 : Final Documentation",
 
1194
  ui={
1195
- "mvp_prd_prompt_editor": UIConfig(
1196
  component_type=UIComponentType.TEXTBOX,
1197
- label="MVP PRD System Prompt",
1198
  lines=20,
1199
  interactive=True
1200
  ),
1201
- "generated_mvp_prd_text": UIConfig(
1202
- component_type=UIComponentType.TEXTBOX,
1203
- label="MVP PRD Output",
1204
  lines=20,
1205
- visible=True
1206
- ),
1207
- "generated_mvp_prd_markdown": UIConfig(
1208
- component_type=UIComponentType.MARKDOWN,
1209
- label="MVP PRD Output",
1210
- visible=True,
1211
- show_copy_button=True
1212
  )
1213
  }
1214
  ),
1215
-
1216
- "generate_page_BD_SOW": PromptConfig(
1217
  prompt=
1218
  """
1219
- As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
1220
-
1221
- ### **Scope of Work (SOW)**
1222
-
1223
- #### **1. Project Background**
1224
- - Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
1225
- - Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
1226
- - Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
1227
-
1228
- #### **2. Project Objective**
1229
- - Clearly define the project's primary goals and what constitutes success, using the following structure:
1230
- - Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
1231
- - Outcomes: Describe tangible deliverables and metrics for success.
1232
-
1233
- #### **3. Project Buyers & Stakeholders**
1234
- - List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
1235
- - Identify their name and roles in the project, using a table.
1236
-
1237
- #### **4. System Flow**
1238
- - Provide description of how the system components interact, describing what each module does and how it works.
1239
- - Use one of the following:
1240
- - Visual Representation: Diagram illustrating workflows or data flows between modules.
1241
- - Textual Description: Detailed explanation of the processes and transitions
1242
- - Use bullet point, ensure simplicity and avoid overly technical language.
1243
-
1244
- #### **5. Modules and Functional Requirements Breakdown**
1245
- - LEAVE THIS BLANK
1246
-
1247
- #### **6. Acceptance Criteria**
1248
- - Define conditions to be met, including specific, measurable criteria for project completion:
1249
- - Link each deliverable/module to its validation or testing process (e.g., UAT).
1250
- - Table format with the following column:
1251
- - Deliverable (e.g. Field Matching Automation module)
1252
- - Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
1253
-
1254
- #### **7. Assumptions and Pre-requisites**
1255
- - List all planning-phase assumptions and pre-requisites, grouped into:
1256
- - Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
1257
- - Reference specific stakeholders (e.g., PWT staff, Mindhive).
1258
- - Describe specific conditions or expectations (e.g., document quality, workflow stability).
1259
- - Be written in clear, concise language.
1260
- - Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
1261
- - Be specific and actionable.
1262
- - Reference who is responsible and what needs to be done.
1263
 
1264
- #### **8. Proposed Timeline**
1265
- - Provide a project timeline, including:
1266
- - Milestone
1267
- - Expected Date/Duration
1268
- - Outcome/Deliverable
1269
- - Use a Gantt chart or table to visualize the timeline.
1270
- - Ensure the output are clean, organized, and easy to read.
1271
 
1272
- #### **9. Commercial**
1273
- Summarize the project's commercial details in the following subsections:
1274
- - Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
1275
- - Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
1276
- - Payment Terms: Include a text description of payment terms:
1277
- - Milestones: Specify at which stages payments are due
1278
- - Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
1279
- - Other Terms: Mention late payment fees or additional terms, if applicable
1280
- - Output Format for tables: {Service}, {Fee} (leave amount blank)
1281
 
1282
- #### **10. Sign-Off**
1283
- - Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
1284
- - Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
1285
- - Provide placeholder for each party (Company):
1286
- - Signature
1287
- - Name
1288
- - Position
1289
- - Date
1290
 
1291
- #### **Guidelines**
1292
- - Use bullet points for clarity.
1293
- - Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
1294
- - Maintain structured sections and tables for readability.
1295
 
1296
- Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
 
 
 
1297
  """,
1298
- inputs=[
1299
- "generated_prd",
1300
- "generated_plan_test_components",
1301
- "reformatted_dev_components",
1302
- "quotation_cost"
1303
- ],
1304
- outputs=["generated_BD_SOW"],
1305
  model=ModelType.O1_MINI,
1306
- description="Step 3.2 : Generate Business Development SOW",
1307
- step="Step 3 : Final Documentation",
 
1308
  ui={
1309
- "BD_SOW_prompt_editor": UIConfig(
1310
  component_type=UIComponentType.TEXTBOX,
1311
- label="BD SOW Generator Prompt",
1312
  lines=20,
1313
  interactive=True
1314
  ),
1315
- "generated_BD_SOW_text": UIConfig(
1316
- component_type=UIComponentType.TEXTBOX,
1317
- label="BD SOW",
1318
  lines=20,
1319
- visible=True
1320
- ),
1321
- "generated_BD_SOW_markdown": UIConfig(
1322
- component_type=UIComponentType.MARKDOWN,
1323
- label="BD SOW",
1324
- visible=True,
1325
- show_copy_button=True
1326
  )
1327
  }
1328
  ),
1329
 
1330
- "generate_engage_BD_SOW": PromptConfig(
1331
  prompt=
1332
  """
1333
- As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
1334
 
1335
- ### **Scope of Work (SOW)**
 
1336
 
1337
- #### **1. Project Background**
1338
- - Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
1339
- - Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
1340
- - Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
1341
-
1342
- #### **2. Project Objective**
1343
- - Clearly define the project's primary goals and what constitutes success, using the following structure:
1344
- - Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
1345
- - Outcomes: Describe tangible deliverables and metrics for success.
1346
-
1347
- #### **3. Project Buyers & Stakeholders**
1348
- - List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
1349
- - Identify their name and roles in the project, using a table.
1350
-
1351
- #### **4. System Flow**
1352
- - Provide description of how the system components interact, describing what each module does and how it works.
1353
- - Use one of the following:
1354
- - Visual Representation: Diagram illustrating workflows or data flows between modules.
1355
- - Textual Description: Detailed explanation of the processes and transitions
1356
- - Use bullet point, ensure simplicity and avoid overly technical language.
1357
-
1358
- #### **5. Modules and Functional Requirements Breakdown**
1359
- - LEAVE THIS BLANK
1360
-
1361
- #### **6. Acceptance Criteria**
1362
- - Define conditions to be met, including specific, measurable criteria for project completion:
1363
- - Link each deliverable/module to its validation or testing process (e.g., UAT).
1364
- - Table format with the following column:
1365
- - Deliverable (e.g. Field Matching Automation module)
1366
- - Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
1367
-
1368
- #### **7. Assumptions and Pre-requisites**
1369
- - List all planning-phase assumptions and pre-requisites, grouped into:
1370
- - Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
1371
- - Reference specific stakeholders (e.g., PWT staff, Mindhive).
1372
- - Describe specific conditions or expectations (e.g., document quality, workflow stability).
1373
- - Be written in clear, concise language.
1374
- - Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
1375
- - Be specific and actionable.
1376
- - Reference who is responsible and what needs to be done.
1377
-
1378
- #### **8. Proposed Timeline**
1379
- - Provide a project timeline, including:
1380
- - Milestone
1381
- - Expected Date/Duration
1382
- - Outcome/Deliverable
1383
- - Use a Gantt chart or table to visualize the timeline.
1384
- - Ensure the output are clean, organized, and easy to read.
1385
-
1386
- #### **9. Commercial**
1387
- Summarize the project's commercial details in the following subsections:
1388
- - Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
1389
- - Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
1390
- - Payment Terms: Include a text description of payment terms:
1391
- - Milestones: Specify at which stages payments are due
1392
- - Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
1393
- - Other Terms: Mention late payment fees or additional terms, if applicable
1394
- - Output Format for tables: {Service}, {Fee} (leave amount blank)
1395
-
1396
- #### **10. Sign-Off**
1397
- - Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
1398
- - Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
1399
- - Provide placeholder for each party (Company):
1400
- - Signature
1401
- - Name
1402
- - Position
1403
- - Date
1404
 
1405
- #### **Guidelines**
1406
- - Use bullet points for clarity.
1407
- - Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
1408
- - Maintain structured sections and tables for readability.
 
1409
 
1410
- Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
 
 
1411
  """,
1412
- inputs=[
1413
- "generated_prd",
1414
- "generated_plan_test_components",
1415
- "reformatted_dev_components",
1416
- "generated_intent_list",
1417
- "quotation_cost"
1418
- ],
1419
- outputs=["generated_BD_SOW"],
1420
  model=ModelType.O1_MINI,
1421
- description="Step 3.2 : Generate Business Development SOW",
1422
- step="Step 3 : Final Documentation",
 
1423
  ui={
1424
- "BD_SOW_prompt_editor": UIConfig(
1425
  component_type=UIComponentType.TEXTBOX,
1426
- label="BD SOW Generator Prompt",
1427
  lines=20,
1428
  interactive=True
1429
  ),
1430
- "generated_BD_SOW_text": UIConfig(
1431
  component_type=UIComponentType.TEXTBOX,
1432
- label="BD SOW",
1433
- lines=20,
1434
  visible=True
1435
  ),
1436
- "generated_BD_SOW_markdown": UIConfig(
1437
  component_type=UIComponentType.MARKDOWN,
1438
- label="BD SOW",
1439
- visible=True,
1440
- show_copy_button=True
1441
- )
1442
- }
1443
- ),
1444
-
1445
- "generate_Tech_SOW": PromptConfig(
1446
- prompt=
1447
- """
1448
- As an experienced project manager with over 20 years of expertise, you are tasked to create a detailed Scope of Work (SOW) document in JSON format. The JSON output should contain markdown-formatted strings as values for each section of the SOW. Analyze the provided project component list and scope document to generate the following sections:
1449
-
1450
- ### **Scope of Work (SOW)**
1451
-
1452
- #### **1. Scope Summary**
1453
- - Provide a concise, high-level overview of the project scope. Divide it into three subsections:
1454
- - In Scope:
1455
- - List all deliverables, functionalities, and modules included in the project.
1456
- - Be specific about what will be developed, implemented, or delivered.
1457
- - Include MVP components (e.g., basic features, functionality, UI, document processing).
1458
- - Assumptions:
1459
- - Highlight key project-specific assumptions that the project relies on.
1460
- - Dependencies:
1461
- - List all internal and external dependencies required for the project's success.
1462
- - Include any third-party integrations, resources, or timelines that the project depends on.
1463
-
1464
- #### **2. Modules and Functional Requirements Breakdown**
1465
- - Break down the project into modules or components.
1466
- - Prsent the details in a succinct and client-friendly table with the following column:
1467
- - Module
1468
- ii. Functionalities/Features
1469
- iii. Notes for any special considerations or constraints (e.g., 'Supports files up to 100MB').
1470
- - Use clear, concise, non-technical language. (e.g., 'Drag-and-drop support for PDFs, Excel, CSV; progress indicators'). Avoid excessive detail.
1471
- - Include MVP components as part of the breakdown and provide clear functionalities related to those (e.g., basic document upload, UI features, data processing).
1472
-
1473
- #### **3. Out of Scope**
1474
- - Explicitly define what is excluded from the project's scope. This may include any functionalities, tasks, or deliverables.
1475
- - Ensure clarity to prevent future misunderstandings.
1476
-
1477
- #### **4. System Flow**
1478
- - Provide a detailed, step-by-step description of how the system components interact.
1479
- - For each component or module:
1480
- - Describe what it does and how it works, including both success and unsuccessful scenarios
1481
- - Explain how it interacts with other components
1482
- - Include MVP-related components in the system flow, describing their function and interaction within the MVP's framework.
1483
-
1484
- Output Requirements:
1485
- Just return the json object and nothing else, omit code guards ```, where each key represents a section of the SOW, and the value is a markdown-formatted string for that section.
1486
- Use clear, concise, and client-friendly language. Avoid excessive technical jargon unless necessary.
1487
- Example JSON Output:
1488
- {
1489
- "scope_summary": <markdown content>,
1490
- "modules_and_functional_requirements": <markdown content>,
1491
- "out_of_scope": <markdown content>,
1492
- "system_flow": <markdown content>
1493
- }
1494
- """,
1495
- inputs=["generated_plan_test_components","reformatted_dev_components","revised_mandays_estimates"],
1496
- outputs=["generated_Tech_SOW"],
1497
- model=ModelType.O1_MINI,
1498
- description="Step 3.3 : Generate Technical SOW",
1499
- step="Step 3 : Final Documentation",
1500
- ui={
1501
- "Tech_SOW_prompt_editor": UIConfig(
1502
- component_type=UIComponentType.TEXTBOX,
1503
- label="Technical SOW Generator Prompt",
1504
- lines=20,
1505
- interactive=True
1506
- ),
1507
- "generated_Tech_SOW_text": UIConfig(
1508
- component_type=UIComponentType.TEXTBOX,
1509
- label="Technical SOW",
1510
- lines=20,
1511
  visible=True
1512
- ),
1513
- "generated_Tech_SOW_markdown": UIConfig(
1514
- component_type=UIComponentType.MARKDOWN,
1515
- label="Technical SOW",
1516
- visible=True,
1517
- show_copy_button=True
1518
  )
1519
  }
1520
  ),
1521
 
1522
- "generate_engage_Tech_SOW": PromptConfig(
1523
  prompt=
1524
  """
1525
- As an experienced project manager with over 20 years of expertise, you are tasked to create a detailed Scope of Work (SOW) document in JSON format. The JSON output should contain markdown-formatted strings as values for each section of the SOW. Analyze the provided project component list and scope document to generate the following sections:
1526
-
1527
- ### **Scope of Work (SOW)**
1528
-
1529
- #### **1. Scope Summary**
1530
- - Provide a concise, high-level overview of the project scope. Divide it into three subsections:
1531
- - In Scope:
1532
- - List all deliverables, functionalities, and modules included in the project.
1533
- - Be specific about what will be developed, implemented, or delivered.
1534
- - Include MVP components (e.g., basic features, functionality, UI, document processing).
1535
- - Assumptions:
1536
- - Highlight key project-specific assumptions that the project relies on.
1537
- - Dependencies:
1538
- - List all internal and external dependencies required for the project's success.
1539
- - Include any third-party integrations, resources, or timelines that the project depends on.
1540
 
1541
- #### **2. Modules and Functional Requirements Breakdown**
1542
- - Break down the project into modules or components.
1543
- - Prsent the details in a succinct and client-friendly table with the following column:
1544
- - Module
1545
- ii. Functionalities/Features
1546
- iii. Notes for any special considerations or constraints (e.g., 'Supports files up to 100MB').
1547
- - Use clear, concise, non-technical language. (e.g., 'Drag-and-drop support for PDFs, Excel, CSV; progress indicators'). Avoid excessive detail.
1548
- - Include MVP components as part of the breakdown and provide clear functionalities related to those (e.g., basic document upload, UI features, data processing).
1549
 
1550
- #### **3. Out of Scope**
1551
- - Explicitly define what is excluded from the project's scope. This may include any functionalities, tasks, or deliverables.
1552
- - Ensure clarity to prevent future misunderstandings.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1553
 
1554
- #### **4. System Flow**
1555
- - Provide a detailed, step-by-step description of how the system components interact.
1556
- - For each component or module:
1557
- - Describe what it does and how it works, including both success and unsuccessful scenarios
1558
- - Explain how it interacts with other components
1559
- - Include MVP-related components in the system flow, describing their function and interaction within the MVP's framework.
1560
 
1561
- Output Requirements:
1562
- Just return the json object and nothing else, omit code guards ```, where each key represents a section of the SOW, and the value is a markdown-formatted string for that section.
1563
- Use clear, concise, and client-friendly language. Avoid excessive technical jargon unless necessary.
1564
- Example JSON Output:
1565
- {
1566
- "scope_summary": <markdown content>,
1567
- "modules_and_functional_requirements": <markdown content>,
1568
- "out_of_scope": <markdown content>,
1569
- "system_flow": <markdown content>
1570
- }
1571
  """,
1572
- inputs=["generated_plan_test_components","reformatted_dev_components","generated_intent_list","mvp_components"],
1573
- outputs=["generated_Tech_SOW"],
1574
  model=ModelType.O1_MINI,
1575
- description="Step 3.3 : Generate Technical SOW",
1576
- step="Step 3 : Final Documentation",
 
1577
  ui={
1578
- "Tech_SOW_prompt_editor": UIConfig(
1579
  component_type=UIComponentType.TEXTBOX,
1580
- label="Technical SOW Generator Prompt",
1581
  lines=20,
1582
  interactive=True
1583
  ),
1584
- "generated_Tech_SOW_text": UIConfig(
1585
  component_type=UIComponentType.TEXTBOX,
1586
- label="Technical SOW",
1587
- lines=20,
1588
  visible=True
1589
  ),
1590
- "generated_Tech_SOW_markdown": UIConfig(
1591
  component_type=UIComponentType.MARKDOWN,
1592
- label="Technical SOW",
1593
- visible=True,
1594
- show_copy_button=True
1595
  )
1596
  }
1597
  ),
1598
 
1599
- "analyze_planning_testing_mandays": PromptConfig(
1600
  prompt=
1601
  """
1602
- You are an experienced project manager tasked with analyzing the provided planning and testing mandays estimates. Your goal is to identify the highest priority components that must be completed to build the MVP. Focus on components that deliver **immediate value to users** and are **critical for the core functionality** of the product.
1603
 
1604
  Objective:
1605
- Identify the highest priority planning and testing components that are critical for the MVP's core functionality and deliver immediate value to the business. Exclude all non-critical components that do not directly contribute to the MVP's primary functionality.
1606
-
1607
- Key Guidelines:
1608
- - Focus on Core Functionality: Only include components that are essential for the MVP to function and deliver immediate value to users.
1609
- - Exclude Non-Critical Components: Do not include components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is not absolutely necessary for the MVP.
1610
- - Prioritize Business Value: Ensure the selected components align with the business's core objectives and deliver measurable value.
1611
- - Minimalistic Approach: Focus on the least effort required to deliver the most value.
1612
 
1613
  Output Format Requirements:
1614
- - Generate a CSV with EXACTLY these column headers: "component,mandays,description"
1615
- - Each row must have all three columns filled
1616
- - Numeric values should not be quoted
1617
- - Text values must be enclosed in double quotes
1618
- - No empty rows or missing values
1619
 
1620
- Return only the CSV content, no code blocks or additional text.
 
 
 
 
 
 
 
 
 
 
 
 
1621
  """,
1622
- inputs=["generated_plan_test_mandays"],
1623
- outputs=["identified_planning_testing_components"],
1624
  model=ModelType.O1_MINI,
1625
- description="Step 2.2 : MVP Plan_Test Analysis",
1626
- step='Step 2 : Mandays & Quotation',
1627
- sub_step="Step 2.2 : Analyze MVP Components",
1628
  ui={
1629
- "mvp_planning_testing_prompt_editor": UIConfig(
1630
  component_type=UIComponentType.TEXTBOX,
1631
- label="MVP Plan_Test Analysis Prompt",
1632
  lines=20,
1633
  interactive=True
1634
  ),
1635
- "mvp_planning_testing_dataframe": UIConfig(
1636
  component_type=UIComponentType.DATAFRAME,
1637
- label="MVP Plan_Test Analysis Components",
1638
- lines=20,
1639
- interactive=True
1640
  )
1641
  }
1642
  ),
1643
-
1644
- "analyze_development_mandays": PromptConfig(
1645
  prompt=
1646
  """
1647
- You are an experienced project manager tasked with analyzing the provided development mandays estimates. Your goal is to assign a priority level to each development component based on its importance to the MVP's core functionality and business value. Focus exclusively on components that deliver immediate value to users and are critical for the core functionality of the product.
1648
-
1649
- Key Guidelines:
1650
- - **Focus on Core Functionality:** Assign priority levels based on how essential each component is for the MVP to function and deliver immediate value to users.
1651
- - **Exclude Non-Critical Considerations:** Do not label components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
1652
- - **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
1653
- - **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
1654
- - **Assign Priority Levels:** Label each development component as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
1655
 
1656
  Objective:
1657
- Assign a priority level ("high," "medium," or "low") to each development component, ensuring the output reflects the importance of each component to the MVP's core functionality and business value. Retain all original components in the list.
1658
 
1659
- Important Notes:
1660
- - If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
1661
- - Do not exclude any components from the list, even if they are low priority.
1662
- - Only assign "high" priority to components that are absolutely necessary for the MVP to function.
1663
-
1664
  Output Format Requirements:
1665
- Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "component","subcomponent","mandays","description". Follow these rules:
 
 
1666
 
1667
- Enclose all text values, including the column headers, in double quotes ("").
1668
- Retain numeric values as-is, without any quotes.
1669
- Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
1670
- Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
 
 
 
 
 
 
 
 
 
 
 
 
 
1671
  """,
1672
- inputs=["generated_dev_mandays"],
1673
- outputs=["identified_development_components"],
1674
  model=ModelType.O1_MINI,
1675
- description="Step 2.2 : MVP Development Analysis",
1676
  step="Step 2 : Mandays & Quotation",
1677
- sub_step="Step 2.2 : Analyze MVP Components",
1678
  ui={
1679
- "mvp_development_prompt_editor": UIConfig(
1680
  component_type=UIComponentType.TEXTBOX,
1681
- label="MVP Development Analysis Prompt",
1682
  lines=20,
1683
  interactive=True
1684
  ),
1685
- "mvp_development_dataframe": UIConfig(
 
 
 
 
 
 
 
 
 
 
 
 
1686
  component_type=UIComponentType.DATAFRAME,
1687
- label="MVP Development Analysis Components",
1688
- lines=20,
1689
- interactive=True
1690
  )
1691
  }
1692
  ),
1693
-
1694
- "analyze_MVP_intents": PromptConfig(
1695
  prompt=
1696
  """
1697
- You are an experienced project manager tasked with analyzing the provided intents mandays estimates. Your goal is to assign a priority level to each intents based on its importance to the MVP's core functionality and business value. Focus exclusively on intents that deliver immediate value to users and are critical for the core functionality of the product.
1698
-
1699
- Key Guidelines:
1700
- - **Focus on Core Functionality:** Assign priority levels based on how essential each intents is for the MVP to function and deliver immediate value to users.
1701
- - **Exclude Non-Critical Considerations:** Do not label intents related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
1702
- - **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
1703
- - **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
1704
- - **Assign Priority Levels:** Label each development intents as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
1705
-
1706
- Objective:
1707
- Assign a priority level ("high," "medium," or "low") to each development intents , ensuring the output reflects the importance to the MVP's core functionality and business value. Retain all original components in the list.
1708
-
1709
- Important Notes:
1710
- - If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
1711
- - Do not exclude any intents rom the list, even if they are low priority.
1712
- - Only assign "high" priority to intents that are absolutely necessary for the MVP to function.
1713
 
1714
- Output Format Requirements:
1715
- Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "intent_type", "intent", and "workflow". Follow these rules:
 
 
 
 
 
1716
 
1717
- Enclose all text values, including the column headers, in double quotes ("").
1718
- Retain numeric values as-is, without any quotes.
1719
- Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
1720
- Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
1721
  """,
1722
- inputs=["generated_intent_list"],
1723
- outputs=["identified_mvp_intents"],
1724
  model=ModelType.O1_MINI,
1725
- description="Step 2.2 : MVP Intent Analysis",
1726
- step='Step 2 : Mandays & Quotation',
1727
- sub_step="Step 2.2 : Analyze MVP Components",
1728
  ui={
1729
- "mvp_intents_prompt_editor": UIConfig(
1730
  component_type=UIComponentType.TEXTBOX,
1731
- label="MVP Intent Analysis Prompt",
1732
  lines=20,
1733
  interactive=True
1734
  ),
1735
- "mvp_intents_dataframe": UIConfig(
1736
- component_type=UIComponentType.DATAFRAME,
1737
- label="MVP Intent Analysis Components",
1738
  lines=20,
1739
- interactive=True
 
 
 
 
 
 
1740
  )
1741
  }
1742
  ),
1743
 
1744
- "recalculate_page_MVP_mandays": PromptConfig(
1745
  prompt=
1746
  """
1747
- Based on the identified priority components from the previous analysis, your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
1748
-
1749
- Objective:
1750
- Reread the entire PRD to identify the timelimit of the MVP, then Recalculate the manday estimates for the identified priority development components to ensure they fit within the timeline specified in the Project Requirement Document (PRD) to build the MVP. Adjust development mandays while maintaining feasibility and ensuring core functionality delivery.
1751
-
1752
- Key Guidelines:
1753
- 1. Convert Time Estimates: Convert all time estimates into raw mandays:
1754
- - 1 week = 7 mandays
1755
- - 1 month = 28-31 mandays
1756
- - If input is in days, use as is.
1757
- - If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
1758
- 2. **Preserve All Components:** Do not remove any components from the list, even if they are low priority.
1759
- 3. **Adjust Mandays Based on Priority:**
1760
- - For **high priority components**, allocate the majority of mandays (eg: 1-3) to ensure critical functionalities are minimally viable. However , components such as authentication , security , etc. can be set to 0.
1761
- - For **medium priority components**, allocate minimal mandays (eg: 1-2) or set them to 0, as these can be deferred without impacting core functionalities.
1762
- - For **low priority components**, set mandays to 0, as these are not essential for the MVP.
1763
- 4. Retain Planning/Testing Components: All identified planning and testing components must be retained in the list but have their mandays set to 0. Do not remove them.
1764
- 5. **Iterative Adjustment:** If the total mandays for the development components still exceed the MVP timeline after the first adjustment, further reduce or set the mandays to 0 on high and medium priority components if necessary until the total fits within the timeline.
1765
- - **MVP Timeline Constraint:** Ensure the final total mandays do not exceed the MVP timeline.
1766
- 6. Justify Adjustments: Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
1767
 
1768
- Output Format Requirements:
1769
- - Provide a revised list of development components with updated mandays estimates.
1770
- - Include the "Priority" column for reference.
1771
- - Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
1772
- - Ensure the output is concise and actionable.
 
 
1773
 
1774
- Important Notes:
1775
- - If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components while keeping high priority components as intact as possible.
1776
- - Do not remove any components from the list, even if their mandays are reduced to 0.
1777
  """,
1778
- inputs=["identified_planning_testing_components", "identified_development_components" , "generated_prd"],
1779
- outputs=["revised_mandays_estimates"],
1780
  model=ModelType.O1_MINI,
1781
- description="Step 2.3 : MVP Mandays Recalculation Prompt",
1782
- step="Step 2 : Mandays & Quotation",
1783
- sub_step="Step 2.3 : Recalculate MVP Mandays",
1784
  ui={
1785
- "mandays_recalculation_prompt_editor": UIConfig(
1786
  component_type=UIComponentType.TEXTBOX,
1787
- label="MVP Mandays Recalculation Prompt",
1788
  lines=20,
1789
  interactive=True
1790
  ),
1791
- "page_mandays_recalculation_text": UIConfig(
1792
  component_type=UIComponentType.TEXTBOX,
1793
- label="MVP Mandays Recalculation",
1794
- interactive=True,
1795
  visible=True
1796
  ),
1797
- "page_mandays_recalculation_markdown": UIConfig(
1798
  component_type=UIComponentType.MARKDOWN,
1799
- label="MVP Mandays Recalculation",
1800
- interactive=True,
1801
- visible=True
1802
  )
1803
  }
1804
  ),
1805
-
1806
- "recalculate_engage_MVP_mandays": PromptConfig(
1807
  prompt=
1808
  """
1809
- Based on the identified priority components and the identified priority intent list from the previous analysis , your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
1810
 
1811
- Objective:
1812
- Read the entire PRD and identify the time constraint ; Recalculate the manday estimates for both development components and intents to ensure the total combined mandays fit within the MVP timeline specified in the Project Requirement Document (PRD). Adjust mandays while maintaining feasibility and ensuring core functionality delivery. Retain all components and intents in the list, even if their mandays are set to 0.
1813
 
1814
- Key Guidelines:
1815
- 1. Total Combined Mandays Constraint:
1816
- The combined total mandays for development components and intents must not exceed MVP timeline.
1817
- Ensure the total is calculated as:
1818
- Total Combined Mandays = Development Components Mandays + Intents Mandays ≤ MVP timeline.
1819
- Convert Time Estimates:
1820
- Convert all time estimates into raw mandays:
1821
- - 1 week = 7 mandays
1822
- - 1 month = 28-31 mandays
1823
- - If input is in days, use as is.
1824
- - If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
1825
- 2. Preserve All Components and Intents:
1826
- 3. Do not remove any components or intents from the list, even if their mandays are set to 0.
1827
- 4. Retain all planning and testing components but set their mandays to 0.
1828
- 5. Adjust Mandays Based on Priority:
1829
- - For high priority, allocate the majority of mandays to ensure critical functionalities are minimally viable. Significant reductions may be necessary for non-core features (e.g., authentication, security).
1830
- - For medium priority, allocate minimal mandays or set them to 0, as these can be deferred without impacting core functionalities.
1831
- - For low priority, set mandays to 0, as these are not essential for the MVP.
1832
- 6. Iterative Adjustment:
1833
- - If the total combined mandays still exceed the MVP timeline after the first adjustment, further reduce mandays for both high and medium priority components and intents until the total fits within the timeline.
1834
- - Set mandays to 0 for non-essential components and intents if necessary, but do not remove them from the list.
1835
- 7. Strict Calculation for Intents:
1836
- Properly calculate the total mandays for development components and MVP intents. Ensure the total combined mandays for both development components and MVP intents DO NOT exceed the MVP timeline.
1837
- 8. Justify Adjustments:
1838
- - Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
1839
 
1840
- Output Format Requirements:
1841
- - Provide a revised list of development components and intents with updated mandays estimates.
1842
- - Include the "Priority" column for reference.
1843
- - Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
1844
- - Retain all components and intents in the list, even if their mandays are set to 0.
1845
- - Ensure the output is concise and actionable.
1846
 
1847
- Important Notes:
1848
- - If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components and intents while keeping high priority components as intact as possible.
1849
- - Do not remove any components or intents from the list, even if their mandays are reduced to 0.
1850
- """,
1851
- inputs=["identified_planning_testing_components", "identified_development_components", "identified_mvp_intents", "generated_prd"],
1852
- outputs=["revised_mandays_estimates"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1853
  model=ModelType.O1_MINI,
1854
- description="Step 2.3 : MVP Mandays Recalculation Prompt",
1855
- step="Step 2 : Mandays & Quotation",
1856
- sub_step="Step 2.3 : Recalculate MVP Mandays",
1857
  ui={
1858
- "mandays_recalculation_prompt_editor": UIConfig(
1859
  component_type=UIComponentType.TEXTBOX,
1860
- label="MVP Mandays Recalculation Prompt",
1861
  lines=20,
1862
  interactive=True
1863
  ),
1864
- "engage_mandays_recalculation_text": UIConfig(
1865
  component_type=UIComponentType.TEXTBOX,
1866
- label="MVP Mandays Recalculation",
1867
- interactive=True,
1868
  visible=True
1869
  ),
1870
- "engage_mandays_recalculation_markdown": UIConfig(
1871
  component_type=UIComponentType.MARKDOWN,
1872
- label="MVP Mandays Recalculation",
1873
- interactive=True,
1874
- visible=True
1875
  )
1876
  }
1877
  ),
1878
 
1879
- "generate_page_MVP_mandays": PromptConfig(
1880
  prompt=
1881
  """
1882
- Using the revised mandays estimates from the previous step, format the output into two clearly separated CSV sections: one for Planning/Testing Components and another for Development Components.
1883
 
1884
- Objective:
1885
- Structure the output to clearly delineate the two sections while maintaining the original column structure.
1886
 
1887
- Output Format Requirements:
1888
- - First Section - Planning & Testing Components:
1889
- component,mandays,description
1890
- "Requirements Analysis",0,"Critical user requirements and system specifications"
1891
 
1892
- - Second Section - Development Components:
1893
- component,subcomponent,mandays,description
1894
- "Backend","Core API Development",3,"Essential API endpoints for basic functionality"
 
1895
 
1896
- Important:
1897
- - Each section must maintain its original column structure.
1898
- - Sections MUST be separated by the marker: "---SECTION BREAK---".
1899
- - Include ALL components and NOT change anything.
1900
- - No empty rows or missing values.
1901
- - Text values must be in double quotes.
1902
- - Numbers must not be in quotes.
1903
 
1904
- Return only the CSV content with the section break, no additional text or explanations.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1905
  """,
1906
- inputs=["revised_mandays_estimates"],
1907
- outputs=["generated_MVP_mandays"],
 
 
 
 
 
 
1908
  model=ModelType.O1_MINI,
1909
- description="Step 2.4 : Generate MVP Mandays",
1910
- step="Step 2 : Mandays & Quotation",
1911
- sub_step="Step 2.4 : Generate MVP Mandays",
1912
  ui={
1913
- "generated_MVP_mandays_prompt_editor": UIConfig(
1914
  component_type=UIComponentType.TEXTBOX,
1915
- label="MVP Mandays Formatting System Prompt",
1916
  lines=20,
1917
  interactive=True
1918
  ),
1919
- "generated_MVP_mandays_dataframe": UIConfig(
1920
- component_type=UIComponentType.DATAFRAME,
1921
- label="Formatted MVP Mandays",
1922
- interactive=True,
 
 
 
 
 
 
 
1923
  )
1924
  }
1925
  ),
1926
 
1927
- "generate_engage_MVP_mandays": PromptConfig(
1928
  prompt=
1929
  """
1930
- Using the revised mandays estimates from the previous step, format the output into three clearly separated CSV sections: one for Planning/Testing Components, one for Development Components, and another for MVP Intents.
1931
 
1932
- Objective:
1933
- Structure the output to clearly delineate the three sections while maintaining the original column structure.
1934
 
1935
- Output Format Requirements:
1936
- - First Section - Planning & Testing Components:
1937
- component,mandays,description
1938
- "Requirements Analysis",0,"Critical user requirements and system specifications"
 
 
 
 
 
 
 
1939
 
1940
- - Second Section - Development Components:
1941
- component,subcomponent,mandays,description
1942
- "Backend","Core API Development",3,"Essential API endpoints for basic functionality"
 
 
 
 
 
1943
 
1944
- - Third Section - MVP Intents:
1945
- intent_type,intent,workflow,mandays
1946
- "Single-Step","Create New Order","1. User initiates order creation → 2. Extract order details from user input → 3. Save order to database 4. Confirm creation to user",0.3
1947
 
1948
- Important:
1949
- - Each section must maintain its original column structure.
1950
- - Sections MUST be separated by the marker: "---SECTION BREAK---".
1951
- - Include ALL the components and intents.
1952
- - No empty rows or missing values.
1953
- - Text values must be in double quotes.
1954
- - Numbers must not be in quotes.
1955
 
1956
- Return only the CSV content with the section break, no additional text or explanations.
 
 
 
 
 
 
 
 
 
1957
  """,
1958
- inputs=["revised_mandays_estimates"],
1959
- outputs=["generated_MVP_mandays"],
1960
  model=ModelType.O1_MINI,
1961
- description="Step 2.4 : Generate MVP Mandays",
1962
- step="Step 2 : Mandays & Quotation",
1963
- sub_step="Step 2.4 : Generate MVP Mandays",
1964
  ui={
1965
- "generated_MVP_mandays_prompt_editor": UIConfig(
1966
  component_type=UIComponentType.TEXTBOX,
1967
- label="MVP Mandays Formatting System Prompt",
1968
  lines=20,
1969
  interactive=True
1970
  ),
1971
- "mvp_plan_test_dataframe": UIConfig(
1972
- component_type=UIComponentType.DATAFRAME,
1973
- label="MVP Planning & Testing Components",
1974
- interactive=True,
1975
- visible=True
1976
- ),
1977
- "mvp_dev_dataframe": UIConfig(
1978
- component_type=UIComponentType.DATAFRAME,
1979
- label="MVP Development Components",
1980
- interactive=True,
1981
  visible=True
1982
  ),
1983
- "mvp_intents_dataframe": UIConfig(
1984
- component_type=UIComponentType.DATAFRAME,
1985
- label="MVP Intents",
1986
- interactive=True,
1987
- visible=True
1988
  )
1989
  }
1990
  ),
 
1124
  )
1125
  }
1126
  ),
1127
+
1128
+ "analyze_planning_testing_mandays": PromptConfig(
1129
  prompt=
1130
  """
1131
+ You are an experienced project manager tasked with analyzing the provided planning and testing mandays estimates. Your goal is to identify the highest priority components that must be completed to build the MVP. Focus on components that deliver **immediate value to users** and are **critical for the core functionality** of the product.
 
 
1132
 
1133
+ Objective:
1134
+ Identify the highest priority planning and testing components that are critical for the MVP's core functionality and deliver immediate value to the business. Exclude all non-critical components that do not directly contribute to the MVP's primary functionality.
 
 
 
 
 
1135
 
1136
+ Key Guidelines:
1137
+ - Focus on Core Functionality: Only include components that are essential for the MVP to function and deliver immediate value to users.
1138
+ - Exclude Non-Critical Components: Do not include components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is not absolutely necessary for the MVP.
1139
+ - Prioritize Business Value: Ensure the selected components align with the business's core objectives and deliver measurable value.
1140
+ - Minimalistic Approach: Focus on the least effort required to deliver the most value.
1141
+
1142
+ Output Format Requirements:
1143
+ - Generate a CSV with EXACTLY these column headers: "component,mandays,description"
1144
+ - Each row must have all three columns filled
1145
+ - Numeric values should not be quoted
1146
+ - Text values must be enclosed in double quotes
1147
+ - No empty rows or missing values
1148
+
1149
+ Return only the CSV content, no code blocks or additional text.
1150
  """,
1151
+ inputs=["generated_plan_test_mandays"],
1152
+ outputs=["identified_planning_testing_components"],
1153
  model=ModelType.O1_MINI,
1154
+ description="Step 2.2 : MVP Plan_Test Analysis",
1155
+ step='Step 2 : Mandays & Quotation',
1156
+ sub_step="Step 2.2 : Analyze MVP Components",
1157
  ui={
1158
+ "mvp_planning_testing_prompt_editor": UIConfig(
1159
  component_type=UIComponentType.TEXTBOX,
1160
+ label="MVP Plan_Test Analysis Prompt",
1161
  lines=20,
1162
  interactive=True
1163
  ),
1164
+ "mvp_planning_testing_dataframe": UIConfig(
1165
+ component_type=UIComponentType.DATAFRAME,
1166
+ label="MVP Plan_Test Analysis Components",
1167
  lines=20,
1168
+ interactive=True
 
 
 
 
 
 
1169
  )
1170
  }
1171
  ),
1172
 
1173
+ "analyze_development_mandays": PromptConfig(
1174
  prompt=
1175
  """
1176
+ You are an experienced project manager tasked with analyzing the provided development mandays estimates. Your goal is to assign a priority level to each development component based on its importance to the MVP's core functionality and business value. Focus exclusively on components that deliver immediate value to users and are critical for the core functionality of the product.
 
 
1177
 
1178
+ Key Guidelines:
1179
+ - **Focus on Core Functionality:** Assign priority levels based on how essential each component is for the MVP to function and deliver immediate value to users.
1180
+ - **Exclude Non-Critical Considerations:** Do not label components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
1181
+ - **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
1182
+ - **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
1183
+ - **Assign Priority Levels:** Label each development component as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
 
1184
 
1185
+ Objective:
1186
+ Assign a priority level ("high," "medium," or "low") to each development component, ensuring the output reflects the importance of each component to the MVP's core functionality and business value. Retain all original components in the list.
1187
+
1188
+ Important Notes:
1189
+ - If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
1190
+ - Do not exclude any components from the list, even if they are low priority.
1191
+ - Only assign "high" priority to components that are absolutely necessary for the MVP to function.
1192
+
1193
+ Output Format Requirements:
1194
+ Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "component","subcomponent","mandays","description". Follow these rules:
1195
+
1196
+ Enclose all text values, including the column headers, in double quotes ("").
1197
+ Retain numeric values as-is, without any quotes.
1198
+ Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
1199
+ Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
1200
  """,
1201
+ inputs=["generated_dev_mandays"],
1202
+ outputs=["identified_development_components"],
1203
  model=ModelType.O1_MINI,
1204
+ description="Step 2.2 : MVP Development Analysis",
1205
+ step="Step 2 : Mandays & Quotation",
1206
+ sub_step="Step 2.2 : Analyze MVP Components",
1207
  ui={
1208
+ "mvp_development_prompt_editor": UIConfig(
1209
  component_type=UIComponentType.TEXTBOX,
1210
+ label="MVP Development Analysis Prompt",
1211
  lines=20,
1212
  interactive=True
1213
  ),
1214
+ "mvp_development_dataframe": UIConfig(
1215
+ component_type=UIComponentType.DATAFRAME,
1216
+ label="MVP Development Analysis Components",
1217
  lines=20,
1218
+ interactive=True
 
 
 
 
 
 
1219
  )
1220
  }
1221
  ),
1222
+
1223
+ "analyze_MVP_intents": PromptConfig(
1224
  prompt=
1225
  """
1226
+ You are an experienced project manager tasked with analyzing the provided intents mandays estimates. Your goal is to assign a priority level to each intents based on its importance to the MVP's core functionality and business value. Focus exclusively on intents that deliver immediate value to users and are critical for the core functionality of the product.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1227
 
1228
+ Key Guidelines:
1229
+ - **Focus on Core Functionality:** Assign priority levels based on how essential each intents is for the MVP to function and deliver immediate value to users.
1230
+ - **Exclude Non-Critical Considerations:** Do not label intents related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
1231
+ - **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
1232
+ - **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
1233
+ - **Assign Priority Levels:** Label each development intents as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
 
1234
 
1235
+ Objective:
1236
+ Assign a priority level ("high," "medium," or "low") to each development intents , ensuring the output reflects the importance to the MVP's core functionality and business value. Retain all original components in the list.
 
 
 
 
 
 
 
1237
 
1238
+ Important Notes:
1239
+ - If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
1240
+ - Do not exclude any intents rom the list, even if they are low priority.
1241
+ - Only assign "high" priority to intents that are absolutely necessary for the MVP to function.
 
 
 
 
1242
 
1243
+ Output Format Requirements:
1244
+ Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "intent_type", "intent", and "workflow". Follow these rules:
 
 
1245
 
1246
+ Enclose all text values, including the column headers, in double quotes ("").
1247
+ Retain numeric values as-is, without any quotes.
1248
+ Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
1249
+ Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
1250
  """,
1251
+ inputs=["generated_intent_list"],
1252
+ outputs=["identified_mvp_intents"],
 
 
 
 
 
1253
  model=ModelType.O1_MINI,
1254
+ description="Step 2.2 : MVP Intent Analysis",
1255
+ step='Step 2 : Mandays & Quotation',
1256
+ sub_step="Step 2.2 : Analyze MVP Components",
1257
  ui={
1258
+ "mvp_intents_prompt_editor": UIConfig(
1259
  component_type=UIComponentType.TEXTBOX,
1260
+ label="MVP Intent Analysis Prompt",
1261
  lines=20,
1262
  interactive=True
1263
  ),
1264
+ "mvp_intents_dataframe": UIConfig(
1265
+ component_type=UIComponentType.DATAFRAME,
1266
+ label="MVP Intent Analysis Components",
1267
  lines=20,
1268
+ interactive=True
 
 
 
 
 
 
1269
  )
1270
  }
1271
  ),
1272
 
1273
+ "recalculate_page_MVP_mandays": PromptConfig(
1274
  prompt=
1275
  """
1276
+ Based on the identified priority components from the previous analysis, your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
1277
 
1278
+ Objective:
1279
+ Reread the entire PRD to identify the timelimit of the MVP, then Recalculate the manday estimates for the identified priority development components to ensure they fit within the timeline specified in the Project Requirement Document (PRD) to build the MVP. Adjust development mandays while maintaining feasibility and ensuring core functionality delivery.
1280
 
1281
+ Key Guidelines:
1282
+ 1. Convert Time Estimates: Convert all time estimates into raw mandays:
1283
+ - 1 week = 7 mandays
1284
+ - 1 month = 28-31 mandays
1285
+ - If input is in days, use as is.
1286
+ - If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
1287
+ 2. **Preserve All Components:** Do not remove any components from the list, even if they are low priority.
1288
+ 3. **Adjust Mandays Based on Priority:**
1289
+ - For **high priority components**, allocate the majority of mandays (eg: 1-3) to ensure critical functionalities are minimally viable. However , components such as authentication , security , etc. can be set to 0.
1290
+ - For **medium priority components**, allocate minimal mandays (eg: 1-2) or set them to 0, as these can be deferred without impacting core functionalities.
1291
+ - For **low priority components**, set mandays to 0, as these are not essential for the MVP.
1292
+ 4. Retain Planning/Testing Components: All identified planning and testing components must be retained in the list but have their mandays set to 0. Do not remove them.
1293
+ 5. **Iterative Adjustment:** If the total mandays for the development components still exceed the MVP timeline after the first adjustment, further reduce or set the mandays to 0 on high and medium priority components if necessary until the total fits within the timeline.
1294
+ - **MVP Timeline Constraint:** Ensure the final total mandays do not exceed the MVP timeline.
1295
+ 6. Justify Adjustments: Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1296
 
1297
+ Output Format Requirements:
1298
+ - Provide a revised list of development components with updated mandays estimates.
1299
+ - Include the "Priority" column for reference.
1300
+ - Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
1301
+ - Ensure the output is concise and actionable.
1302
 
1303
+ Important Notes:
1304
+ - If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components while keeping high priority components as intact as possible.
1305
+ - Do not remove any components from the list, even if their mandays are reduced to 0.
1306
  """,
1307
+ inputs=["identified_planning_testing_components", "identified_development_components" , "generated_prd"],
1308
+ outputs=["revised_mandays_estimates"],
 
 
 
 
 
 
1309
  model=ModelType.O1_MINI,
1310
+ description="Step 2.3 : MVP Mandays Recalculation",
1311
+ step="Step 2 : Mandays & Quotation",
1312
+ sub_step="Step 2.3 : Recalculate MVP Mandays",
1313
  ui={
1314
+ "mandays_recalculation_prompt_editor": UIConfig(
1315
  component_type=UIComponentType.TEXTBOX,
1316
+ label="MVP Mandays Recalculation Prompt",
1317
  lines=20,
1318
  interactive=True
1319
  ),
1320
+ "page_mandays_recalculation_text": UIConfig(
1321
  component_type=UIComponentType.TEXTBOX,
1322
+ label="MVP Mandays Recalculation",
1323
+ interactive=True,
1324
  visible=True
1325
  ),
1326
+ "page_mandays_recalculation_markdown": UIConfig(
1327
  component_type=UIComponentType.MARKDOWN,
1328
+ label="MVP Mandays Recalculation",
1329
+ interactive=True,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1330
  visible=True
 
 
 
 
 
 
1331
  )
1332
  }
1333
  ),
1334
 
1335
+ "recalculate_engage_MVP_mandays": PromptConfig(
1336
  prompt=
1337
  """
1338
+ Based on the identified priority components and the identified priority intent list from the previous analysis , your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1339
 
1340
+ Objective:
1341
+ Read the entire PRD and identify the time constraint ; Recalculate the manday estimates for both development components and intents to ensure the total combined mandays fit within the MVP timeline specified in the Project Requirement Document (PRD). Adjust mandays while maintaining feasibility and ensuring core functionality delivery. Retain all components and intents in the list, even if their mandays are set to 0.
 
 
 
 
 
 
1342
 
1343
+ Key Guidelines:
1344
+ 1. Total Combined Mandays Constraint:
1345
+ The combined total mandays for development components and intents must not exceed MVP timeline.
1346
+ Ensure the total is calculated as:
1347
+ Total Combined Mandays = Development Components Mandays + Intents Mandays ≤ MVP timeline.
1348
+ Convert Time Estimates:
1349
+ Convert all time estimates into raw mandays:
1350
+ - 1 week = 7 mandays
1351
+ - 1 month = 28-31 mandays
1352
+ - If input is in days, use as is.
1353
+ - If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
1354
+ 2. Preserve All Components and Intents:
1355
+ 3. Do not remove any components or intents from the list, even if their mandays are set to 0.
1356
+ 4. Retain all planning and testing components but set their mandays to 0.
1357
+ 5. Adjust Mandays Based on Priority:
1358
+ - For high priority, allocate the majority of mandays to ensure critical functionalities are minimally viable. Significant reductions may be necessary for non-core features (e.g., authentication, security).
1359
+ - For medium priority, allocate minimal mandays or set them to 0, as these can be deferred without impacting core functionalities.
1360
+ - For low priority, set mandays to 0, as these are not essential for the MVP.
1361
+ 6. Iterative Adjustment:
1362
+ - If the total combined mandays still exceed the MVP timeline after the first adjustment, further reduce mandays for both high and medium priority components and intents until the total fits within the timeline.
1363
+ - Set mandays to 0 for non-essential components and intents if necessary, but do not remove them from the list.
1364
+ 7. Strict Calculation for Intents:
1365
+ Properly calculate the total mandays for development components and MVP intents. Ensure the total combined mandays for both development components and MVP intents DO NOT exceed the MVP timeline.
1366
+ 8. Justify Adjustments:
1367
+ - Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
1368
 
1369
+ Output Format Requirements:
1370
+ - Provide a revised list of development components and intents with updated mandays estimates.
1371
+ - Include the "Priority" column for reference.
1372
+ - Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
1373
+ - Retain all components and intents in the list, even if their mandays are set to 0.
1374
+ - Ensure the output is concise and actionable.
1375
 
1376
+ Important Notes:
1377
+ - If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components and intents while keeping high priority components as intact as possible.
1378
+ - Do not remove any components or intents from the list, even if their mandays are reduced to 0.
 
 
 
 
 
 
 
1379
  """,
1380
+ inputs=["identified_planning_testing_components", "identified_development_components", "identified_mvp_intents", "generated_prd"],
1381
+ outputs=["revised_mandays_estimates"],
1382
  model=ModelType.O1_MINI,
1383
+ description="Step 2.3 : MVP Mandays Recalculation",
1384
+ step="Step 2 : Mandays & Quotation",
1385
+ sub_step="Step 2.3 : Recalculate MVP Mandays",
1386
  ui={
1387
+ "mandays_recalculation_prompt_editor": UIConfig(
1388
  component_type=UIComponentType.TEXTBOX,
1389
+ label="MVP Mandays Recalculation Prompt",
1390
  lines=20,
1391
  interactive=True
1392
  ),
1393
+ "engage_mandays_recalculation_text": UIConfig(
1394
  component_type=UIComponentType.TEXTBOX,
1395
+ label="MVP Mandays Recalculation",
1396
+ interactive=True,
1397
  visible=True
1398
  ),
1399
+ "engage_mandays_recalculation_markdown": UIConfig(
1400
  component_type=UIComponentType.MARKDOWN,
1401
+ label="MVP Mandays Recalculation",
1402
+ interactive=True,
1403
+ visible=True
1404
  )
1405
  }
1406
  ),
1407
 
1408
+ "generate_page_MVP_mandays": PromptConfig(
1409
  prompt=
1410
  """
1411
+ Using the revised mandays estimates from the previous step, format the output into two clearly separated CSV sections: one for Planning/Testing Components and another for Development Components.
1412
 
1413
  Objective:
1414
+ Structure the output to clearly delineate the two sections while maintaining the original column structure.
 
 
 
 
 
 
1415
 
1416
  Output Format Requirements:
1417
+ - First Section - Planning & Testing Components:
1418
+ component,mandays,description
1419
+ "Requirements Analysis",0,"Critical user requirements and system specifications"
 
 
1420
 
1421
+ - Second Section - Development Components:
1422
+ component,subcomponent,mandays,description
1423
+ "Backend","Core API Development",3,"Essential API endpoints for basic functionality"
1424
+
1425
+ Important:
1426
+ - Each section must maintain its original column structure.
1427
+ - Sections MUST be separated by the marker: "---SECTION BREAK---".
1428
+ - Include ALL components and NOT change anything.
1429
+ - No empty rows or missing values.
1430
+ - Text values must be in double quotes.
1431
+ - Numbers must not be in quotes.
1432
+
1433
+ Return only the CSV content with the section break, no additional text or explanations.
1434
  """,
1435
+ inputs=["revised_mandays_estimates"],
1436
+ outputs=["generated_MVP_mandays"],
1437
  model=ModelType.O1_MINI,
1438
+ description="Step 2.4 : Generate MVP Mandays",
1439
+ step="Step 2 : Mandays & Quotation",
1440
+ sub_step="Step 2.4 : Generate MVP Mandays",
1441
  ui={
1442
+ "generated_MVP_mandays_prompt_editor": UIConfig(
1443
  component_type=UIComponentType.TEXTBOX,
1444
+ label="MVP Mandays Formatting System Prompt",
1445
  lines=20,
1446
  interactive=True
1447
  ),
1448
+ "generated_MVP_mandays_dataframe": UIConfig(
1449
  component_type=UIComponentType.DATAFRAME,
1450
+ label="Formatted MVP Mandays",
1451
+ interactive=True,
 
1452
  )
1453
  }
1454
  ),
1455
+
1456
+ "generate_engage_MVP_mandays": PromptConfig(
1457
  prompt=
1458
  """
1459
+ Using the revised mandays estimates from the previous step, format the output into three clearly separated CSV sections: one for Planning/Testing Components, one for Development Components, and another for MVP Intents.
 
 
 
 
 
 
 
1460
 
1461
  Objective:
1462
+ Structure the output to clearly delineate the three sections while maintaining the original column structure.
1463
 
 
 
 
 
 
1464
  Output Format Requirements:
1465
+ - First Section - Planning & Testing Components:
1466
+ component,mandays,description
1467
+ "Requirements Analysis",0,"Critical user requirements and system specifications"
1468
 
1469
+ - Second Section - Development Components:
1470
+ component,subcomponent,mandays,description
1471
+ "Backend","Core API Development",3,"Essential API endpoints for basic functionality"
1472
+
1473
+ - Third Section - MVP Intents:
1474
+ intent_type,intent,workflow,mandays
1475
+ "Single-Step","Create New Order","1. User initiates order creation → 2. Extract order details from user input → 3. Save order to database → 4. Confirm creation to user",0.3
1476
+
1477
+ Important:
1478
+ - Each section must maintain its original column structure.
1479
+ - Sections MUST be separated by the marker: "---SECTION BREAK---".
1480
+ - Include ALL the components and intents.
1481
+ - No empty rows or missing values.
1482
+ - Text values must be in double quotes.
1483
+ - Numbers must not be in quotes.
1484
+
1485
+ Return only the CSV content with the section break, no additional text or explanations.
1486
  """,
1487
+ inputs=["revised_mandays_estimates"],
1488
+ outputs=["generated_MVP_mandays"],
1489
  model=ModelType.O1_MINI,
1490
+ description="Step 2.4 : Generate MVP Mandays",
1491
  step="Step 2 : Mandays & Quotation",
1492
+ sub_step="Step 2.4 : Generate MVP Mandays",
1493
  ui={
1494
+ "generated_MVP_mandays_prompt_editor": UIConfig(
1495
  component_type=UIComponentType.TEXTBOX,
1496
+ label="MVP Mandays Formatting System Prompt",
1497
  lines=20,
1498
  interactive=True
1499
  ),
1500
+ "mvp_plan_test_dataframe": UIConfig(
1501
+ component_type=UIComponentType.DATAFRAME,
1502
+ label="MVP Planning & Testing Components",
1503
+ interactive=True,
1504
+ visible=True
1505
+ ),
1506
+ "mvp_dev_dataframe": UIConfig(
1507
+ component_type=UIComponentType.DATAFRAME,
1508
+ label="MVP Development Components",
1509
+ interactive=True,
1510
+ visible=True
1511
+ ),
1512
+ "mvp_intents_dataframe": UIConfig(
1513
  component_type=UIComponentType.DATAFRAME,
1514
+ label="MVP Intents",
1515
+ interactive=True,
1516
+ visible=True
1517
  )
1518
  }
1519
  ),
1520
+
1521
+ "generate_page_MVP_prd": PromptConfig(
1522
  prompt=
1523
  """
1524
+ Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
1525
+ 1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
1526
+ 2. **Revised Mandays Estimates**: Incorporate the specific MVP components, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
 
 
 
 
 
 
 
 
 
 
 
 
 
1527
 
1528
+ Follow these instructions:
1529
+ - Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
1530
+ - Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
1531
+ - Do not add any context or assumptions beyond the provided inputs.
1532
+ - Do not exclude any details from the inputs.
1533
+ - Structure the document to ensure clarity, logical flow, and readability and use tabular format whenever possible.
1534
+ - Use the title "Project Requirements" for the document.
1535
 
1536
+ The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
 
 
 
1537
  """,
1538
+ inputs=["generated_prd" , "generated_MVP_mandays"],
1539
+ outputs=["generated_mvp_prd"],
1540
  model=ModelType.O1_MINI,
1541
+ description="Step 3.1 : Generate MVP PRD",
1542
+ step="Step 3 : Final Documentation",
 
1543
  ui={
1544
+ "mvp_prd_prompt_editor": UIConfig(
1545
  component_type=UIComponentType.TEXTBOX,
1546
+ label="MVP PRD System Prompt",
1547
  lines=20,
1548
  interactive=True
1549
  ),
1550
+ "generated_mvp_prd_text": UIConfig(
1551
+ component_type=UIComponentType.TEXTBOX,
1552
+ label="MVP PRD Output",
1553
  lines=20,
1554
+ visible=True
1555
+ ),
1556
+ "generated_mvp_prd_markdown": UIConfig(
1557
+ component_type=UIComponentType.MARKDOWN,
1558
+ label="MVP PRD Output",
1559
+ visible=True,
1560
+ show_copy_button=True
1561
  )
1562
  }
1563
  ),
1564
 
1565
+ "generate_engage_MVP_prd": PromptConfig(
1566
  prompt=
1567
  """
1568
+ Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
1569
+ 1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
1570
+ 2. **Revised Mandays Estimates**: Incorporate the specific MVP components & intents, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1571
 
1572
+ Follow these instructions:
1573
+ - Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
1574
+ - Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
1575
+ - Do not add any context or assumptions beyond the provided inputs.
1576
+ - Do not exclude any details from the inputs.
1577
+ - Structure the document to ensure clarity, logical flow, and readability and structure tabular format if necessary.
1578
+ - Use the title "Project Requirements" for the document.
1579
 
1580
+ The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
 
 
1581
  """,
1582
+ inputs=["generated_prd" , "generated_MVP_mandays"],
1583
+ outputs=["generated_mvp_prd"],
1584
  model=ModelType.O1_MINI,
1585
+ description="Step 3.1 : Generate MVP PRD",
1586
+ step="Step 3 : Final Documentation",
 
1587
  ui={
1588
+ "mvp_prd_prompt_editor": UIConfig(
1589
  component_type=UIComponentType.TEXTBOX,
1590
+ label="MVP PRD System Prompt",
1591
  lines=20,
1592
  interactive=True
1593
  ),
1594
+ "generated_mvp_prd_text": UIConfig(
1595
  component_type=UIComponentType.TEXTBOX,
1596
+ label="MVP PRD Output",
1597
+ lines=20,
1598
  visible=True
1599
  ),
1600
+ "generated_mvp_prd_markdown": UIConfig(
1601
  component_type=UIComponentType.MARKDOWN,
1602
+ label="MVP PRD Output",
1603
+ visible=True,
1604
+ show_copy_button=True
1605
  )
1606
  }
1607
  ),
1608
+
1609
+ "generate_page_BD_SOW": PromptConfig(
1610
  prompt=
1611
  """
1612
+ As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
1613
 
1614
+ ### **Scope of Work (SOW)**
 
1615
 
1616
+ #### **1. Project Background**
1617
+ - Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
1618
+ - Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
1619
+ - Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1620
 
1621
+ #### **2. Project Objective**
1622
+ - Clearly define the project's primary goals and what constitutes success, using the following structure:
1623
+ - Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
1624
+ - Outcomes: Describe tangible deliverables and metrics for success.
 
 
1625
 
1626
+ #### **3. Project Buyers & Stakeholders**
1627
+ - List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
1628
+ - Identify their name and roles in the project, using a table.
1629
+
1630
+ #### **4. System Flow**
1631
+ - Provide description of how the system components interact, describing what each module does and how it works.
1632
+ - Use one of the following:
1633
+ - Visual Representation: Diagram illustrating workflows or data flows between modules.
1634
+ - Textual Description: Detailed explanation of the processes and transitions
1635
+ - Use bullet point, ensure simplicity and avoid overly technical language.
1636
+
1637
+ #### **5. Modules and Functional Requirements Breakdown**
1638
+ - LEAVE THIS BLANK
1639
+
1640
+ #### **6. Acceptance Criteria**
1641
+ - Define conditions to be met, including specific, measurable criteria for project completion:
1642
+ - Link each deliverable/module to its validation or testing process (e.g., UAT).
1643
+ - Table format with the following column:
1644
+ - Deliverable (e.g. Field Matching Automation module)
1645
+ - Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
1646
+
1647
+ #### **7. Assumptions and Pre-requisites**
1648
+ - List all planning-phase assumptions and pre-requisites, grouped into:
1649
+ - Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
1650
+ - Reference specific stakeholders (e.g., PWT staff, Mindhive).
1651
+ - Describe specific conditions or expectations (e.g., document quality, workflow stability).
1652
+ - Be written in clear, concise language.
1653
+ - Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
1654
+ - Be specific and actionable.
1655
+ - Reference who is responsible and what needs to be done.
1656
+
1657
+ #### **8. Proposed Timeline**
1658
+ - Provide a project timeline, including:
1659
+ - Milestone
1660
+ - Expected Date/Duration
1661
+ - Outcome/Deliverable
1662
+ - Use a Gantt chart or table to visualize the timeline.
1663
+ - Ensure the output are clean, organized, and easy to read.
1664
+
1665
+ #### **9. Commercial**
1666
+ Summarize the project's commercial details in the following subsections:
1667
+ - Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
1668
+ - Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
1669
+ - Payment Terms: Include a text description of payment terms:
1670
+ - Milestones: Specify at which stages payments are due
1671
+ - Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
1672
+ - Other Terms: Mention late payment fees or additional terms, if applicable
1673
+ - Output Format for tables: {Service}, {Fee} (leave amount blank)
1674
+
1675
+ #### **10. Sign-Off**
1676
+ - Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
1677
+ - Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
1678
+ - Provide placeholder for each party (Company):
1679
+ - Signature
1680
+ - Name
1681
+ - Position
1682
+ - Date
1683
+
1684
+ #### **Guidelines**
1685
+ - Use bullet points for clarity.
1686
+ - Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
1687
+ - Maintain structured sections and tables for readability.
1688
+
1689
+ Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
1690
+ """,
1691
+ inputs=[
1692
+ "generated_prd",
1693
+ "generated_plan_test_components",
1694
+ "reformatted_dev_components",
1695
+ "quotation_cost"
1696
+ ],
1697
+ outputs=["generated_BD_SOW"],
1698
  model=ModelType.O1_MINI,
1699
+ description="Step 3.2 : Generate Business Development SOW",
1700
+ step="Step 3 : Final Documentation",
 
1701
  ui={
1702
+ "BD_SOW_prompt_editor": UIConfig(
1703
  component_type=UIComponentType.TEXTBOX,
1704
+ label="BD SOW Generator Prompt",
1705
  lines=20,
1706
  interactive=True
1707
  ),
1708
+ "generated_BD_SOW_text": UIConfig(
1709
  component_type=UIComponentType.TEXTBOX,
1710
+ label="BD SOW",
1711
+ lines=20,
1712
  visible=True
1713
  ),
1714
+ "generated_BD_SOW_markdown": UIConfig(
1715
  component_type=UIComponentType.MARKDOWN,
1716
+ label="BD SOW",
1717
+ visible=True,
1718
+ show_copy_button=True
1719
  )
1720
  }
1721
  ),
1722
 
1723
+ "generate_engage_BD_SOW": PromptConfig(
1724
  prompt=
1725
  """
1726
+ As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
1727
 
1728
+ ### **Scope of Work (SOW)**
 
1729
 
1730
+ #### **1. Project Background**
1731
+ - Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
1732
+ - Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
1733
+ - Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
1734
 
1735
+ #### **2. Project Objective**
1736
+ - Clearly define the project's primary goals and what constitutes success, using the following structure:
1737
+ - Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
1738
+ - Outcomes: Describe tangible deliverables and metrics for success.
1739
 
1740
+ #### **3. Project Buyers & Stakeholders**
1741
+ - List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
1742
+ - Identify their name and roles in the project, using a table.
 
 
 
 
1743
 
1744
+ #### **4. System Flow**
1745
+ - Provide description of how the system components interact, describing what each module does and how it works.
1746
+ - Use one of the following:
1747
+ - Visual Representation: Diagram illustrating workflows or data flows between modules.
1748
+ - Textual Description: Detailed explanation of the processes and transitions
1749
+ - Use bullet point, ensure simplicity and avoid overly technical language.
1750
+
1751
+ #### **5. Modules and Functional Requirements Breakdown**
1752
+ - LEAVE THIS BLANK
1753
+
1754
+ #### **6. Acceptance Criteria**
1755
+ - Define conditions to be met, including specific, measurable criteria for project completion:
1756
+ - Link each deliverable/module to its validation or testing process (e.g., UAT).
1757
+ - Table format with the following column:
1758
+ - Deliverable (e.g. Field Matching Automation module)
1759
+ - Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
1760
+
1761
+ #### **7. Assumptions and Pre-requisites**
1762
+ - List all planning-phase assumptions and pre-requisites, grouped into:
1763
+ - Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
1764
+ - Reference specific stakeholders (e.g., PWT staff, Mindhive).
1765
+ - Describe specific conditions or expectations (e.g., document quality, workflow stability).
1766
+ - Be written in clear, concise language.
1767
+ - Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
1768
+ - Be specific and actionable.
1769
+ - Reference who is responsible and what needs to be done.
1770
+
1771
+ #### **8. Proposed Timeline**
1772
+ - Provide a project timeline, including:
1773
+ - Milestone
1774
+ - Expected Date/Duration
1775
+ - Outcome/Deliverable
1776
+ - Use a Gantt chart or table to visualize the timeline.
1777
+ - Ensure the output are clean, organized, and easy to read.
1778
+
1779
+ #### **9. Commercial**
1780
+ Summarize the project's commercial details in the following subsections:
1781
+ - Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
1782
+ - Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
1783
+ - Payment Terms: Include a text description of payment terms:
1784
+ - Milestones: Specify at which stages payments are due
1785
+ - Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
1786
+ - Other Terms: Mention late payment fees or additional terms, if applicable
1787
+ - Output Format for tables: {Service}, {Fee} (leave amount blank)
1788
+
1789
+ #### **10. Sign-Off**
1790
+ - Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
1791
+ - Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
1792
+ - Provide placeholder for each party (Company):
1793
+ - Signature
1794
+ - Name
1795
+ - Position
1796
+ - Date
1797
+
1798
+ #### **Guidelines**
1799
+ - Use bullet points for clarity.
1800
+ - Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
1801
+ - Maintain structured sections and tables for readability.
1802
+
1803
+ Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
1804
  """,
1805
+ inputs=[
1806
+ "generated_prd",
1807
+ "generated_plan_test_components",
1808
+ "reformatted_dev_components",
1809
+ "generated_intent_list",
1810
+ "quotation_cost"
1811
+ ],
1812
+ outputs=["generated_BD_SOW"],
1813
  model=ModelType.O1_MINI,
1814
+ description="Step 3.2 : Generate Business Development SOW",
1815
+ step="Step 3 : Final Documentation",
 
1816
  ui={
1817
+ "BD_SOW_prompt_editor": UIConfig(
1818
  component_type=UIComponentType.TEXTBOX,
1819
+ label="BD SOW Generator Prompt",
1820
  lines=20,
1821
  interactive=True
1822
  ),
1823
+ "generated_BD_SOW_text": UIConfig(
1824
+ component_type=UIComponentType.TEXTBOX,
1825
+ label="BD SOW",
1826
+ lines=20,
1827
+ visible=True
1828
+ ),
1829
+ "generated_BD_SOW_markdown": UIConfig(
1830
+ component_type=UIComponentType.MARKDOWN,
1831
+ label="BD SOW",
1832
+ visible=True,
1833
+ show_copy_button=True
1834
  )
1835
  }
1836
  ),
1837
 
1838
+ "generate_Tech_SOW": PromptConfig(
1839
  prompt=
1840
  """
1841
+ As an experienced project manager with over 20 years of expertise, you are tasked to create a detailed Scope of Work (SOW) document in JSON format. The JSON output should contain markdown-formatted strings as values for each section of the SOW. Analyze the provided project component list and scope document to generate the following sections:
1842
 
1843
+ ### **Scope of Work (SOW)**
 
1844
 
1845
+ #### **1. Scope Summary**
1846
+ - Provide a concise, high-level overview of the project scope. Divide it into three subsections:
1847
+ - In Scope:
1848
+ - List all deliverables, functionalities, and modules included in the project.
1849
+ - Be specific about what will be developed, implemented, or delivered.
1850
+ - Include MVP components (e.g., basic features, functionality, UI, document processing).
1851
+ - Assumptions:
1852
+ - Highlight key project-specific assumptions that the project relies on.
1853
+ - Dependencies:
1854
+ - List all internal and external dependencies required for the project's success.
1855
+ - Include any third-party integrations, resources, or timelines that the project depends on.
1856
 
1857
+ #### **2. Modules and Functional Requirements Breakdown**
1858
+ - Break down the project into modules or components.
1859
+ - Prsent the details in a succinct and client-friendly table with the following column:
1860
+ - Module
1861
+ ii. Functionalities/Features
1862
+ iii. Notes for any special considerations or constraints (e.g., 'Supports files up to 100MB').
1863
+ - Use clear, concise, non-technical language. (e.g., 'Drag-and-drop support for PDFs, Excel, CSV; progress indicators'). Avoid excessive detail.
1864
+ - Include MVP components as part of the breakdown and provide clear functionalities related to those (e.g., basic document upload, UI features, data processing).
1865
 
1866
+ #### **3. Out of Scope**
1867
+ - Explicitly define what is excluded from the project's scope. This may include any functionalities, tasks, or deliverables.
1868
+ - Ensure clarity to prevent future misunderstandings.
1869
 
1870
+ #### **4. System Flow**
1871
+ - Provide a detailed, step-by-step description of how the system components interact.
1872
+ - For each component or module:
1873
+ - Describe what it does and how it works, including both success and unsuccessful scenarios
1874
+ - Explain how it interacts with other components
1875
+ - Include MVP-related components in the system flow, describing their function and interaction within the MVP's framework.
 
1876
 
1877
+ Output Requirements:
1878
+ Just return the json object and nothing else, omit code guards ```, where each key represents a section of the SOW, and the value is a markdown-formatted string for that section.
1879
+ Use clear, concise, and client-friendly language. Avoid excessive technical jargon unless necessary.
1880
+ Example JSON Output:
1881
+ {
1882
+ "scope_summary": <markdown content>,
1883
+ "modules_and_functional_requirements": <markdown content>,
1884
+ "out_of_scope": <markdown content>,
1885
+ "system_flow": <markdown content>
1886
+ }
1887
  """,
1888
+ inputs=["generated_plan_test_components","reformatted_dev_components","generated_MVP_mandays"],
1889
+ outputs=["generated_Tech_SOW"],
1890
  model=ModelType.O1_MINI,
1891
+ description="Step 3.3 : Generate Technical SOW",
1892
+ step="Step 3 : Final Documentation",
 
1893
  ui={
1894
+ "Tech_SOW_prompt_editor": UIConfig(
1895
  component_type=UIComponentType.TEXTBOX,
1896
+ label="Technical SOW Generator Prompt",
1897
  lines=20,
1898
  interactive=True
1899
  ),
1900
+ "generated_Tech_SOW_text": UIConfig(
1901
+ component_type=UIComponentType.TEXTBOX,
1902
+ label="Technical SOW",
1903
+ lines=20,
 
 
 
 
 
 
1904
  visible=True
1905
  ),
1906
+ "generated_Tech_SOW_markdown": UIConfig(
1907
+ component_type=UIComponentType.MARKDOWN,
1908
+ label="Technical SOW",
1909
+ visible=True,
1910
+ show_copy_button=True
1911
  )
1912
  }
1913
  ),
sample_permutations.py CHANGED
@@ -66,14 +66,17 @@ GENERATE_MVP_MANDAYS_FUNCTIONS = {
66
 
67
  GENERATE_FINAL_DOCUMENT_FUNCTIONS = {
68
  ConfigurationType.CHATBOT: [
 
69
  "generate_engage_BD_SOW",
70
  "generate_Tech_SOW"
71
  ],
72
  ConfigurationType.DOCUMENT_EXTRACTION: [
 
73
  "generate_page_BD_SOW",
74
  "generate_Tech_SOW"
75
  ],
76
  ConfigurationType.CHATBOT_AND_DOC: [
 
77
  "generate_engage_BD_SOW",
78
  "generate_Tech_SOW"
79
  ]
 
66
 
67
  GENERATE_FINAL_DOCUMENT_FUNCTIONS = {
68
  ConfigurationType.CHATBOT: [
69
+ "generate_engage_MVP_prd",
70
  "generate_engage_BD_SOW",
71
  "generate_Tech_SOW"
72
  ],
73
  ConfigurationType.DOCUMENT_EXTRACTION: [
74
+ "generate_page_MVP_prd",
75
  "generate_page_BD_SOW",
76
  "generate_Tech_SOW"
77
  ],
78
  ConfigurationType.CHATBOT_AND_DOC: [
79
+ "generate_engage_MVP_prd",
80
  "generate_engage_BD_SOW",
81
  "generate_Tech_SOW"
82
  ]