wize-dev-kit 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/DECISIONS.md +13 -0
  3. package/README.md +9 -2
  4. package/package.json +1 -1
  5. package/src/core-skills/module.yaml +4 -0
  6. package/src/core-skills/wize-spec/assets/headless-schemas.md +39 -0
  7. package/src/core-skills/wize-spec/assets/spec-template.md +40 -0
  8. package/src/core-skills/wize-spec/customize.toml +20 -0
  9. package/src/core-skills/wize-spec/skill.md +110 -0
  10. package/src/method-skills/1-analysis/wize-domain-research/customize.toml +14 -0
  11. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +49 -0
  12. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +39 -0
  13. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +39 -0
  14. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +39 -0
  15. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +39 -0
  16. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +43 -0
  17. package/src/method-skills/1-analysis/wize-domain-research/research.template.md +31 -0
  18. package/src/method-skills/1-analysis/wize-domain-research/workflow.md +51 -0
  19. package/src/method-skills/1-analysis/wize-market-research/customize.toml +14 -0
  20. package/src/method-skills/1-analysis/wize-market-research/research.template.md +31 -0
  21. package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +57 -0
  22. package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +39 -0
  23. package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +37 -0
  24. package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +39 -0
  25. package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +37 -0
  26. package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +47 -0
  27. package/src/method-skills/1-analysis/wize-market-research/workflow.md +59 -0
  28. package/src/method-skills/1-analysis/wize-technical-research/customize.toml +14 -0
  29. package/src/method-skills/1-analysis/wize-technical-research/research.template.md +31 -0
  30. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +49 -0
  31. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +45 -0
  32. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +39 -0
  33. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +39 -0
  34. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +42 -0
  35. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +46 -0
  36. package/src/method-skills/1-analysis/wize-technical-research/workflow.md +53 -0
  37. package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +41 -0
  38. package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +20 -0
  39. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +95 -0
  40. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +32 -0
  41. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +126 -0
  42. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +110 -0
  43. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +129 -0
  44. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +109 -0
  45. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +97 -0
  46. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +124 -0
  47. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +59 -0
  48. package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +38 -201
  49. package/src/method-skills/4-implementation/wize-code-review/customize.toml +21 -0
  50. package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +64 -0
  51. package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +38 -0
  52. package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +43 -0
  53. package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +100 -0
  54. package/src/method-skills/4-implementation/wize-code-review/workflow.md +34 -89
  55. package/src/method-skills/module.yaml +19 -0
@@ -0,0 +1,64 @@
1
+ ---
2
+ diff_output: ''
3
+ spec_file: ''
4
+ review_mode: ''
5
+ story_key: ''
6
+ ---
7
+
8
+ # Step 1: Gather Context
9
+
10
+ ## Rules
11
+
12
+ - Speak in `{communication_language}`.
13
+ - The prompt that triggered this workflow IS the intent.
14
+ - Do not modify any files in this step. Read-only.
15
+
16
+ ## Instructions
17
+
18
+ 1. **Find the review target.** Check in this order and stop as soon as the target is identified:
19
+
20
+ **Tier 1 — Explicit argument.**
21
+ Did the user pass a PR, commit SHA, branch, spec file, or diff source?
22
+ - PR reference → resolve to branch/commit via `gh pr view`.
23
+ - Commit or branch → use directly.
24
+ - Spec file → set `{spec_file}` to the path. Check its frontmatter for `baseline_commit`.
25
+ - Diff-mode keywords: `staged`, `uncommitted`, `branch diff`, `commit range`, `this diff`.
26
+
27
+ **Tier 2 — Recent conversation.**
28
+ Look for refs in the last few messages.
29
+
30
+ **Tier 3 — Sprint tracking.**
31
+ Look for `*sprint-status*` files and find stories with status `review`.
32
+
33
+ **Tier 4 — Current git state.**
34
+ If not on the default branch, confirm whether to review the current branch.
35
+
36
+ **Tier 5 — Ask.**
37
+ Present options: uncommitted changes, staged changes, branch diff, commit range, provided diff.
38
+
39
+ 2. **Construct `{diff_output}`.**
40
+ - Staged only: `git diff --cached`
41
+ - Uncommitted: `git diff HEAD`
42
+ - Branch diff: `git diff <base>..<branch>`
43
+ - Commit range: `git diff <from>..<to>`
44
+ - Provided diff: validate and use verbatim
45
+ - File list: `git diff HEAD -- <files...>`, with untracked files included via `git diff --no-index /dev/null <path>`
46
+
47
+ If `{diff_output}` is empty, halt and say so.
48
+
49
+ 3. **Set the spec context.**
50
+ - If `{spec_file}` is set and readable, set `{review_mode}` = `"full"`.
51
+ - Otherwise ask: "Is there a spec or story file that provides context for these changes?"
52
+ - Yes → set `{spec_file}`, verify it, set `{review_mode}` = `"full"`.
53
+ - No → set `{review_mode}` = `"no-spec"`.
54
+
55
+ 4. **Sanity check.**
56
+ If the diff exceeds ~3000 lines, warn and offer to chunk.
57
+
58
+ ### Checkpoint
59
+
60
+ Present a summary: diff stats, `{review_mode}`, loaded spec/context docs. Halt and wait for confirmation to proceed.
61
+
62
+ ## Next
63
+
64
+ Read fully and follow `./step-02-review.md`.
@@ -0,0 +1,38 @@
1
+ ---
2
+ failed_layers: ''
3
+ ---
4
+
5
+ # Step 2: Review
6
+
7
+ ## Rules
8
+
9
+ - Speak in `{communication_language}`.
10
+ - The Blind Hunter subagent receives **only** the diff — no project context.
11
+ - The Edge Case Hunter subagent receives the diff and project read access.
12
+ - The Acceptance Auditor subagent receives the diff, spec, and context docs.
13
+ - All review subagents run at the same model capability as the current session.
14
+
15
+ ## Instructions
16
+
17
+ 1. If `{review_mode}` = `"no-spec"`, note: "Acceptance Auditor skipped — no spec file provided."
18
+
19
+ 2. Launch parallel subagents without conversation context:
20
+
21
+ - **Blind Hunter** — receives `{diff_output}` only. Invoke via `wize-review-adversarial`.
22
+ Prompt: "Review this diff cynically. Assume problems exist. Find at least ten issues. Output as a Markdown list with one-line titles."
23
+
24
+ - **Edge Case Hunter** — receives `{diff_output}` and read access to the project. Invoke via `wize-review-edge-case-hunter`.
25
+ Prompt: "Walk every branching path and boundary condition in this diff. Report only unhandled edge cases as a JSON array."
26
+
27
+ - **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — receives `{diff_output}`, `{spec_file}` content, and context docs.
28
+ Prompt: "Review this diff against the spec. Check for violations of acceptance criteria, deviations from spec intent, and missing behavior. Output findings as a Markdown list with AC/constraint reference and evidence."
29
+
30
+ 3. If subagents are unavailable, generate prompt files in `{implementation_artifacts}` and halt, asking the user to run each in a separate session.
31
+
32
+ 4. If any subagent fails, times out, or returns empty, append the layer name to `{failed_layers}` and proceed with findings from the remaining layers.
33
+
34
+ 5. Collect all findings from completed layers.
35
+
36
+ ## Next
37
+
38
+ Read fully and follow `./step-03-triage.md`.
@@ -0,0 +1,43 @@
1
+ # Step 3: Triage
2
+
3
+ ## Rules
4
+
5
+ - Speak in `{communication_language}`.
6
+ - Be precise. When uncertain between categories, prefer the more conservative classification.
7
+
8
+ ## Instructions
9
+
10
+ 1. **Normalize** findings into a common format. Expected input formats:
11
+ - Blind Hunter: Markdown list of descriptions.
12
+ - Edge Case Hunter: JSON array with `location`, `trigger_condition`, `guard_snippet`, `potential_consequence`.
13
+ - Acceptance Auditor: Markdown list with title, AC/constraint reference, and evidence.
14
+
15
+ Convert all to a unified list with:
16
+ - `id` — sequential integer
17
+ - `source` — `blind`, `edge`, `auditor`, or merged (`blind+edge`, etc.)
18
+ - `title` — one-line summary
19
+ - `detail` — full description
20
+ - `location` — file and line reference if available
21
+
22
+ 2. **Deduplicate.** Merge findings that describe the same issue:
23
+ - Use the most specific finding as the base (prefer Edge Case Hunter JSON with location).
24
+ - Append unique detail, reasoning, or locations from other findings.
25
+ - Set `source` to merged sources.
26
+
27
+ 3. **Classify** each finding into exactly one bucket:
28
+ - **decision_needed** — ambiguous choice requiring human input. Only possible if `{review_mode}` = `"full"`.
29
+ - **patch** — code issue fixable without human input.
30
+ - **defer** — pre-existing issue not caused by this change.
31
+ - **dismiss** — noise, false positive, or handled elsewhere.
32
+
33
+ If `{review_mode}` = `"no-spec"` and a finding would be `decision_needed`, reclassify as `patch` or `defer`.
34
+
35
+ 4. **Drop** all `dismiss` findings. Record the dismiss count.
36
+
37
+ 5. If `{failed_layers}` is non-empty, report which layers failed. If zero findings remain and layers failed, warn the user that the review may be incomplete.
38
+
39
+ 6. If zero findings remain after triage, state: "✅ Clean review — all layers passed."
40
+
41
+ ## Next
42
+
43
+ Read fully and follow `./step-04-present.md`.
@@ -0,0 +1,100 @@
1
+ ---
2
+ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
3
+ ---
4
+
5
+ # Step 4: Present and Act
6
+
7
+ ## Rules
8
+
9
+ - Speak in `{communication_language}`.
10
+ - When `{spec_file}` is set, always write findings to the story file before offering action choices.
11
+ - `decision_needed` findings must be resolved before handling `patch` findings.
12
+
13
+ ## Instructions
14
+
15
+ ### 1. Clean review shortcut
16
+
17
+ If zero findings remain after triage, state that and proceed to section 6 (Sprint Status Update).
18
+
19
+ ### 2. Write findings to the story file
20
+
21
+ If `{spec_file}` exists and contains a Tasks/Subtasks section, append a `### Review Findings` subsection in this order:
22
+
23
+ 1. `decision_needed` (unchecked):
24
+ ```
25
+ - [ ] [Review][Decision] <Title> — <Detail>
26
+ ```
27
+ 2. `patch` (unchecked):
28
+ ```
29
+ - [ ] [Review][Patch] <Title> [<file>:<line>]
30
+ ```
31
+ 3. `defer` (checked):
32
+ ```
33
+ - [x] [Review][Defer] <Title> [<file>:<line>] — deferred, pre-existing
34
+ ```
35
+
36
+ Also append each `defer` finding to `{deferred_work_file}` under `## Deferred from: code review ({date})`.
37
+
38
+ ### 3. Present summary
39
+
40
+ ```
41
+ Code review complete.
42
+ - decision_needed: {D}
43
+ - patch: {P}
44
+ - defer: {W}
45
+ - dismissed: {R}
46
+ ```
47
+
48
+ If `{spec_file}` is set, add: "Findings written to `{spec_file}`."
49
+
50
+ ### 4. Resolve decision_needed findings
51
+
52
+ Present each `decision_needed` finding and ask the user to decide. Once resolved, each becomes a `patch`, `defer`, or is dismissed.
53
+
54
+ If deferred, ask for a one-line reason and append it to both the story file bullet and the deferred-work file.
55
+
56
+ ### 5. Handle patch findings
57
+
58
+ If `patch` findings exist, ask:
59
+
60
+ ```
61
+ How would you like to handle the {P} patch findings?
62
+ 1. Apply every patch — fix all now, no per-finding confirmation.
63
+ 2. Leave as action items — they are already in the story file (only if spec_file set).
64
+ 3. Walk through each patch — show details before deciding.
65
+ ```
66
+
67
+ Wait for the numbered choice. Do not proceed until selected.
68
+
69
+ - **Apply every patch**: apply all patch findings. Afterward, present a summary of changes and check off patch items in the story file if applicable.
70
+ - **Leave as action items**: done.
71
+ - **Walk through each patch**: present each finding with detail and suggested fix, then re-offer the menu.
72
+
73
+ ### 6. Update story status and sync sprint tracking
74
+
75
+ Skip if `{spec_file}` is not set.
76
+
77
+ Determine `{new_status}`:
78
+ - If all `decision_needed` and `patch` findings are resolved and no unresolved issues remain → `done`
79
+ - If patch findings were left as action items or unresolved issues remain → `in-progress`
80
+
81
+ Update the story file status and save it.
82
+
83
+ If `{story_key}` is set and a sprint-status file exists, update the matching `development_status` entry.
84
+
85
+ ### 7. Next steps
86
+
87
+ Present options:
88
+
89
+ ```
90
+ What would you like to do next?
91
+ 1. Start the next story — run wize-dev-story to pick up the next ready-for-dev story.
92
+ 2. Re-run code review — address findings and review again.
93
+ 3. Done — end the workflow.
94
+ ```
95
+
96
+ Wait for the numbered choice.
97
+
98
+ ## On complete
99
+
100
+ Run `{workflow.on_complete}` if non-empty.
@@ -2,118 +2,63 @@
2
2
  code: wize-code-review
3
3
  name: Code Review
4
4
  phase: 4-implementation
5
- owner: wize-agent-dev # Shuri (peer Shuri — done at PR open time)
5
+ owner: wize-agent-dev # Shuri (peer review)
6
6
  status: ready
7
7
  ---
8
8
 
9
9
  # Code Review
10
10
 
11
- **Goal.** Audit **code health** on the PR. Separate from Hawkeye's `tea-review` (which audits AC fulfillment). Both run on every story PR; they're complementary.
11
+ **Goal.** Review code changes adversarially using parallel review layers and structured triage into actionable categories.
12
12
 
13
- Shuri reviews peer PRs. Tony reviews when architecture is at stake.
13
+ This is **Shuri's peer code review** — separate from Hawkeye's `wize-tea-review` (which audits AC fulfillment). Both run on every story PR; they are complementary.
14
14
 
15
15
  ## When to run
16
16
 
17
- Every PR that ships code. Quick-dev PRs get a lighter review (skip code-architecture checks unless they touched architecture).
17
+ Every PR that ships code. Quick-dev PRs get a lighter review (skip architecture checks unless they touched architecture).
18
18
 
19
19
  ## Inputs
20
20
 
21
- - The PR (diff + tests).
22
- - Story file (for context what the PR is supposed to accomplish).
23
- - Linked design system (when components change).
21
+ - The diff, PR, branch, or commit range to review.
22
+ - The spec/story file for context (optional but recommended).
23
+ - Existing code style and project context from `.wize/knowledge/document-project/`.
24
24
 
25
- ## Output
25
+ ## Outputs
26
26
 
27
- - Inline comments on the PR.
28
- - Final review verdict: `approve` / `request-changes` / `comment`.
27
+ - Inline-style findings presented in the conversation.
28
+ - Optional patch application if the user chooses to fix findings now.
29
+ - Updated story file with a `### Review Findings` section when a spec file is provided.
30
+ - Updated sprint status when a story key is discovered.
29
31
 
30
- ## What this checks
32
+ ## Workflow architecture
31
33
 
32
- ### Naming + structure
33
- - Are types, functions, variables named for **what they are**, not **how they're used**?
34
- - Are files in the right folder per the architecture?
35
- - Are exports minimal? Module boundaries respected?
36
- - Are there new abstractions justified by the story or premature?
34
+ This skill uses **step-file architecture**:
37
35
 
38
- ### Tests
39
- - Do tests cover the changed behavior (not just coverage %)?
40
- - Are they fast and isolated?
41
- - Are mocks at the boundary, not inside the unit?
42
- - Any `test.skip` / `.only` left in?
36
+ - Each step is self-contained and followed exactly.
37
+ - Sequential enforcement: complete steps in order, no skipping.
38
+ - State tracked in frontmatter variables set at runtime.
39
+ - Append-only building of findings.
43
40
 
44
- ### Security (obvious-misses)
45
- - Input validation at boundaries.
46
- - Tokens / secrets / PII never logged.
47
- - SQL parameterized, not concatenated.
48
- - New deps audited; no known CVEs introduced.
49
- - Auth context checked on every server entry point.
41
+ ## Critical rules
50
42
 
51
- ### Performance (obvious-misses)
52
- - No N+1 queries.
53
- - No `await` in tight loops without batching.
54
- - No new sync I/O on hot paths.
55
- - Bundle delta acceptable (size of new front-end imports).
43
+ - **Read completely** each step file before acting.
44
+ - **Never** load multiple step files simultaneously.
45
+ - **Always** halt at checkpoints and wait for human input.
46
+ - Use CWD-relative `path:line` for every code reference.
56
47
 
57
- ### Architectural drift
58
- - Story didn't quietly introduce a new layer / new pattern.
59
- - If it did, an ADR was opened or a comment justifies it.
60
- - Components reused from design system; new components added to system if reusable.
48
+ ## On activation
61
49
 
62
- ### Style + convention
63
- - Follows lint / format / type rules.
64
- - Comments explain *why*, not *what*.
65
- - Dead code removed.
66
- - TODOs have an owner + a ticket.
50
+ 1. Load `.wize/config/project.toml` and `.wize/config/user.toml`.
51
+ 2. Resolve `user_name`, `communication_language`, `document_output_language`, `implementation_artifacts`, `planning_artifacts`.
52
+ 3. Greet the user in `communication_language`.
53
+ 4. Read fully and follow `./steps/step-01-gather-context.md`.
67
54
 
68
- ## What this does NOT check
55
+ ## Steps
69
56
 
70
- - Whether ACs are met that's Hawkeye's `tea-review`.
71
- - Whether the design is right that's reviewed in pull-request walk-through, ADR review, or party-mode.
72
-
73
- Don't conflate. Two reviewers, two scopes.
74
-
75
- ## Comment style
76
-
77
- Use these prefixes:
78
-
79
- | Prefix | Meaning |
80
- |---|---|
81
- | `nit:` | Cosmetic; non-blocking |
82
- | `q:` | Question; might be a misunderstanding |
83
- | `praise:` | Real call-outs; teams need them |
84
- | `suggestion:` | Idea, the author decides |
85
- | `blocking:` | Must change before merge |
86
- | `out-of-scope:` | Real issue, separate story |
87
-
88
- Never `LGTM` without scanning. Never `LGTM` with `blocking:` open.
89
-
90
- ## Verdict
91
-
92
- - **approve** — all blockings resolved.
93
- - **request-changes** — at least one `blocking:`.
94
- - **comment** — reviewed, no opinion (rare; used for early-draft PRs).
95
-
96
- ## PR-open checklist (Shuri's self-review)
97
-
98
- Before opening, Shuri runs through:
99
-
100
- - [ ] CI green locally.
101
- - [ ] Lint + format clean.
102
- - [ ] Type-check clean.
103
- - [ ] No `console.log` / `dbg!` / debug printf.
104
- - [ ] No `test.skip` / `.only`.
105
- - [ ] Reading the diff right now, can I explain every line?
106
- - [ ] Self-walk: open the changed screen / call the changed endpoint.
107
- - [ ] Story status flipped to `ready-for-review`.
108
-
109
- ## Anti-patterns Shuri rejects in herself
110
-
111
- - Approving without reading.
112
- - Approving on the basis of green CI alone.
113
- - "Big PR; will trust" — refuse and ask for slicing.
114
- - Inline suggestions for full rewrites — open a follow-up instead.
115
- - Demanding stylistic preferences not in the lint config.
57
+ 1. `step-01-gather-context.md` identify the diff source, construct `{diff_output}`, set `{review_mode}` and `{spec_file}`.
58
+ 2. `step-02-review.md` launch parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor).
59
+ 3. `step-03-triage.md` — normalize, deduplicate, and classify findings into `decision_needed`, `patch`, `defer`, `dismiss`.
60
+ 4. `step-04-present.md` present findings, resolve decisions, apply patches, update story status.
116
61
 
117
62
  ## Hand-off
118
63
 
119
- > Reviewed PR #418 (E02-S02). 2 nits, 1 blocking on auth-context check missing in one new route. Shuri to fix; re-review needed; then Hawkeye runs `tea-review`.
64
+ > Code review complete for `{story_key or change}`. `{decision_needed}` decision(s), `{patch}` patch(es), `{defer}` deferred, `{dismissed}` dismissed as noise. Next: re-run review or continue to `wize-tea-review` (Hawkeye).
@@ -97,9 +97,28 @@ agents:
97
97
  team: software-development
98
98
  description: "Wakanda forever — agora compila. TDD red-green-refactor, segurança, performance, código limpo. Estilo: gênio inovadora, rápida, protetora do ecossistema, sem fluff."
99
99
 
100
+ # Notable skills shipped by method (discovery is automatic via workflow.md/skill.md walkers).
101
+ skills:
102
+ - code: wize-market-research
103
+ name: "Market Research"
104
+ description: "Competition and customer research for the product brief and PRD."
105
+ - code: wize-domain-research
106
+ name: "Domain Research"
107
+ description: "Industry, regulatory, and technical-trend research."
108
+ - code: wize-technical-research
109
+ name: "Technical Research"
110
+ description: "Technology, architecture, and implementation-pattern research."
111
+ - code: wize-create-architecture
112
+ name: "Create Architecture"
113
+ description: "Collaborative step-by-step architecture design with 8 steps."
114
+ - code: wize-code-review
115
+ name: "Code Review"
116
+ description: "Adversarial code review with parallel layers and structured triage."
117
+
100
118
  # Phase directories (declarative discovery for the installer):
101
119
  phases:
102
120
  - "1-analysis"
103
121
  - "2-plan-workflows"
104
122
  - "3-solutioning"
105
123
  - "4-implementation"
124
+