You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- All options: README.md, package-info.java & Javadoc files
52
53
- Skip
53
54
@@ -134,6 +135,18 @@ Options:
134
135
- No, skip Javadoc site generation
135
136
136
137
---
138
+
139
+
**Question 10**: For ADR generation, where would you like to store the ADR files?
140
+
Ask this question only if you selected "ADR (Architecture Decision Record) - interactive generation" in Question 1.
141
+
142
+
Options:
143
+
- documentation/adr/ (recommended standard location)
144
+
- docs/adr/ (alternative standard location)
145
+
- adr/ (root level directory)
146
+
- Custom path (I'll specify the location)
147
+
148
+
---
149
+
137
150
```
138
151
139
152
#### Step Constraints
@@ -582,7 +595,7 @@ After generating package-info.java files:
582
595
```java
583
596
/**
584
597
* [Brief description of class/method purpose].
585
-
*
598
+
*
586
599
* @param paramName [parameter description]
587
600
* @return [return value description]
588
601
* @throws ExceptionType [exception description]
@@ -593,14 +606,14 @@ After generating package-info.java files:
593
606
```java
594
607
/**
595
608
* [Comprehensive description of class/method purpose and behavior].
596
-
*
609
+
*
597
610
* <p>[Additional context about usage patterns, side effects, or important considerations]
598
-
*
611
+
*
599
612
* <h3>Usage Example:</h3>
600
613
* <pre>{@code
601
614
* // Example code showing typical usage
602
615
* }</pre>
603
-
*
616
+
*
604
617
* @param paramName [detailed parameter description with constraints and expectations]
605
618
* @return [detailed return value description with possible values and meanings]
606
619
* @throws ExceptionType [detailed exception description with conditions that trigger it]
@@ -667,11 +680,277 @@ After enhancing Javadoc:
667
680
-**MUST** validate Javadoc generation with `./mvnw javadoc:javadoc`
668
681
-**MUST NOT** use generic or templated descriptions
669
682
670
-
### Step 5: Documentation Validation and Summary
683
+
### Step 6: ADR Interactive Generation
684
+
685
+
**Purpose**: Generate Architecture Decision Records (ADRs) through an interactive conversational process that gathers all necessary information systematically.
686
+
687
+
**Dependencies**: Only execute if user selected ADR generation in Step 1. Requires completion of Step 1.
688
+
689
+
**CONDITIONAL EXECUTION**: Only execute this step if user selected "ADR (Architecture Decision Record) - interactive generation" in Step 1.
690
+
691
+
## Implementation Strategy
692
+
693
+
This step implements a conversational approach to create comprehensive ADRs by systematically gathering information through targeted questions, following the pattern from the referenced conversational assistant.
694
+
695
+
## Phase 0: Get Current Date
696
+
697
+
**IMPORTANT**: Before starting the ADR creation process, get the current date from the computer using the terminal command `date` to ensure accurate timestamps in the ADR document.
698
+
699
+
```bash
700
+
date
701
+
```
702
+
703
+
## Phase 1: Information Gathering
704
+
705
+
Acknowledge the request and inform the user that you need to ask some targeted questions to create a well-structured ADR. Then, systematically gather information through the conversational process outlined below.
706
+
707
+
**CRITICAL**: Ask questions ONE BY ONE in the exact order specified. WAIT for user response to each question before proceeding to the next.
708
+
709
+
### Initial Context Questions
710
+
711
+
1.**"What architectural decision or problem are we addressing today?"**
712
+
- This helps establish the main topic and scope
713
+
- Use the answer to create the ADR title
714
+
715
+
2.**"Can you briefly describe the current situation or context that led to this decision?"**
716
+
- This fills the Context and Problem Statement section
717
+
- Ask follow-up questions if the context isn't clear
718
+
719
+
### Stakeholder Information Questions
720
+
721
+
3.**"Who are the key decision-makers involved in this decision?"**
722
+
- List names/roles for the decision-makers metadata field
723
+
724
+
4.**"Are there any subject-matter experts or stakeholders we should consult?"**
725
+
- Fill the "consulted" metadata field
726
+
- Distinguish between consulted (two-way communication) and informed (one-way)
727
+
728
+
5.**"Who else needs to be kept informed about this decision?"**
729
+
- Fill the "informed" metadata field
730
+
731
+
### Decision Analysis Questions
732
+
733
+
6.**"What are the main factors driving this decision?"**
7.**"What options have you considered to solve this problem?"**
738
+
- List all alternatives, including the "do nothing" option if relevant
739
+
- For each option, ask: "Can you briefly describe this option?"
740
+
741
+
8.**"For each option, what are the main advantages and disadvantages?"**
742
+
- This fills the Pros and Cons section
743
+
- Ask specific follow-up questions about trade-offs
744
+
745
+
### Decision Outcome Questions
746
+
747
+
9.**"Which option have you chosen or do you recommend?"**
748
+
- This becomes the chosen option in Decision Outcome
749
+
750
+
10.**"What's the main reasoning behind this choice?"**
751
+
- Include criteria that ruled out other options
752
+
- Mention any knockout factors
753
+
754
+
### Implementation and Consequences Questions
755
+
756
+
11.**"What positive outcomes do you expect from this decision?"**
757
+
- Fill the "Good, because..." items in Consequences
758
+
759
+
12.**"What potential negative impacts or risks should we be aware of?"**
760
+
- Fill the "Bad, because..." items in Consequences
761
+
762
+
13.**"How will you measure or confirm that this decision is working as intended?"**
763
+
- This creates the Confirmation section
764
+
- Ask about metrics, reviews, tests, or other validation methods
765
+
766
+
### Additional Information Questions
767
+
768
+
14.**"Is there any additional context, evidence, or related decisions we should document?"**
769
+
- Fill the More Information section
770
+
- Ask about related ADRs, external resources, or future considerations
771
+
772
+
15.**"What's the current status of this decision? (proposed/accepted/implemented/etc.)"**
773
+
- Set the status metadata field
774
+
775
+
## Phase 2: ADR Document Generation
776
+
777
+
Once all information is gathered through conversation, inform the user you will now generate the ADR document. Use the current date obtained from the `date` command to replace the `{YYYY-MM-DD when the decision was last updated}` placeholders in the template.
778
+
779
+
**Template Usage**: Use the following ADR template structure:
780
+
781
+
```markdown
782
+
---
783
+
# These are optional metadata elements. Feel free to remove any of them.
date: {YYYY-MM-DD when the decision was last updated}
786
+
decision-makers: {list everyone involved in the decision}
787
+
consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication}
788
+
informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
789
+
---
790
+
791
+
# {short title, representative of solved problem and found solution}
792
+
793
+
## Context and Problem Statement
794
+
795
+
{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story. You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
796
+
797
+
<!-- This is an optional element. Feel free to remove. -->
798
+
799
+
## Decision Drivers
800
+
801
+
* {decision driver 1, e.g., a force, facing concern, …}
802
+
* {decision driver 2, e.g., a force, facing concern, …}
803
+
* … <!-- numbers of drivers can vary -->
804
+
805
+
## Considered Options
806
+
807
+
* {title of option 1}
808
+
* {title of option 2}
809
+
* {title of option 3}
810
+
* … <!-- numbers of options can vary -->
811
+
812
+
## Decision Outcome
813
+
814
+
Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
815
+
816
+
<!-- This is an optional element. Feel free to remove. -->
817
+
818
+
### Consequences
819
+
820
+
* Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
821
+
* Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
822
+
* … <!-- numbers of consequences can vary -->
823
+
824
+
<!-- This is an optional element. Feel free to remove. -->
825
+
826
+
### Confirmation
827
+
828
+
{Describe how the implementation / compliance of the ADR can/will be confirmed. Is there any automated or manual fitness function? If so, list it and explain how it is applied. Is the chosen design and its implementation in line with the decision? E.g., a design/code review or a test with a library such as ArchUnit can help validate this. Note that although we classify this element as optional, it is included in many ADRs.}
829
+
830
+
<!-- This is an optional element. Feel free to remove. -->
831
+
832
+
## Pros and Cons of the Options
833
+
834
+
### {title of option 1}
835
+
836
+
<!-- This is an optional element. Feel free to remove. -->
837
+
{example | description | pointer to more information | …}
838
+
839
+
* Good, because {argument a}
840
+
* Good, because {argument b}
841
+
<!-- use "neutral" if the given argument weights neither for good nor bad -->
842
+
* Neutral, because {argument c}
843
+
* Bad, because {argument d}
844
+
* … <!-- numbers of pros and cons can vary -->
845
+
846
+
### {title of other option}
847
+
848
+
{example | description | pointer to more information | …}
849
+
850
+
* Good, because {argument a}
851
+
* Good, because {argument b}
852
+
* Neutral, because {argument c}
853
+
* Bad, because {argument d}
854
+
* …
855
+
856
+
<!-- This is an optional element. Feel free to remove. -->
857
+
858
+
## More Information
859
+
860
+
{You might want to provide additional evidence/confidence for the decision outcome here and/or document the team agreement on the decision and/or define when/how this decision the decision should be realized and if/when it should be re-visited. Links to other decisions and resources might appear here as well.}
861
+
```
862
+
863
+
## Phase 3: File Creation and Storage
864
+
865
+
1.**Determine ADR file location** based on user selection from Step 1:
866
+
- Use the directory path selected by user in Question 10
0 commit comments