@groupby/ai-dev 0.1.1 → 0.2.1

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 (50) hide show
  1. package/README.md +9 -0
  2. package/dist/index.js +260 -21
  3. package/package.json +16 -11
  4. package/toolsets/rzlv-flow/README.md +57 -0
  5. package/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
  6. package/toolsets/rzlv-flow/resources/README.md +16 -0
  7. package/toolsets/rzlv-flow/resources/confluence-file-structure.md +179 -0
  8. package/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
  9. package/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
  10. package/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
  11. package/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
  12. package/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
  13. package/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
  14. package/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
  15. package/toolsets/rzlv-flow/resources/sync-state-format.md +209 -0
  16. package/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
  17. package/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
  18. package/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
  19. package/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +135 -0
  20. package/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +116 -0
  21. package/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
  22. package/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
  23. package/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +240 -0
  24. package/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
  25. package/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +227 -0
  26. package/toolsets/toolsets/rzlv-flow/README.md +102 -0
  27. package/toolsets/toolsets/rzlv-flow/docs/getting-started.md +102 -0
  28. package/toolsets/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
  29. package/toolsets/toolsets/rzlv-flow/resources/README.md +16 -0
  30. package/toolsets/toolsets/rzlv-flow/resources/confluence-file-structure.md +285 -0
  31. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
  32. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
  33. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
  34. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
  35. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
  36. package/toolsets/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
  37. package/toolsets/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
  38. package/toolsets/toolsets/rzlv-flow/resources/sync-state-format.md +318 -0
  39. package/toolsets/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
  40. package/toolsets/toolsets/rzlv-flow/skills/confluence-fetch/SKILL.md +189 -0
  41. package/toolsets/toolsets/rzlv-flow/skills/confluence-publish/SKILL.md +178 -0
  42. package/toolsets/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
  43. package/toolsets/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
  44. package/toolsets/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +143 -0
  45. package/toolsets/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +143 -0
  46. package/toolsets/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
  47. package/toolsets/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
  48. package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +245 -0
  49. package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
  50. package/toolsets/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +260 -0
@@ -0,0 +1,126 @@
1
+ # MCP Server Setup Guide
2
+
3
+ This guide covers configuring the MCP servers required by rzlv-flow skills.
4
+
5
+ ---
6
+
7
+ ## Atlassian MCP (`atlassian-rovo`) — Required
8
+
9
+ All Jira and Confluence skills depend on the Atlassian MCP server for API access.
10
+
11
+ ### VS Code Configuration
12
+
13
+ Add the following to your `.vscode/mcp.json` (create the file if it doesn't exist):
14
+
15
+ ```json
16
+ {
17
+ "servers": {
18
+ "atlassian-rovo": {
19
+ "command": "npx",
20
+ "args": ["-y", "@anthropic/atlassian-rovo-mcp"],
21
+ "env": {
22
+ "ATLASSIAN_SITE": "your-company.atlassian.net",
23
+ "ATLASSIAN_EMAIL": "you@company.com",
24
+ "ATLASSIAN_API_TOKEN": "${input:atlassianApiToken}"
25
+ }
26
+ }
27
+ },
28
+ "inputs": [
29
+ {
30
+ "type": "promptString",
31
+ "id": "atlassianApiToken",
32
+ "description": "Atlassian API Token",
33
+ "password": true
34
+ }
35
+ ]
36
+ }
37
+ ```
38
+
39
+ ### Generating an API Token
40
+
41
+ 1. Go to [https://id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens)
42
+ 2. Click **Create API token**
43
+ 3. Give it a label (e.g. "VS Code MCP")
44
+ 4. Copy the generated token — you won't see it again
45
+
46
+ ### Verifying the Connection
47
+
48
+ After configuring, ask the LLM to run a simple query:
49
+
50
+ > "Search Jira for my open tickets using the Atlassian MCP"
51
+
52
+ If the MCP server is configured correctly, it will call `mcp_atlassian-rovo_search` and return results. If you get an authentication error, double-check your site URL, email, and API token.
53
+
54
+ ---
55
+
56
+ ## GitHub MCP — Optional
57
+
58
+ Only needed for PR creation features in the `jira-wrap-sync` skill. All other skills work without it.
59
+
60
+ ### VS Code Configuration
61
+
62
+ Add to your `.vscode/mcp.json`:
63
+
64
+ ```json
65
+ {
66
+ "servers": {
67
+ "github": {
68
+ "command": "npx",
69
+ "args": ["-y", "@modelcontextprotocol/server-github"],
70
+ "env": {
71
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:githubPat}"
72
+ }
73
+ }
74
+ },
75
+ "inputs": [
76
+ {
77
+ "type": "promptString",
78
+ "id": "githubPat",
79
+ "description": "GitHub Personal Access Token",
80
+ "password": true
81
+ }
82
+ ]
83
+ }
84
+ ```
85
+
86
+ ### PAT Token Requirements
87
+
88
+ Create a fine-grained personal access token at [https://github.com/settings/tokens?type=beta](https://github.com/settings/tokens?type=beta) with the following scopes:
89
+
90
+ - **Repository access:** Select the repos you work with
91
+ - **Permissions:**
92
+ - Contents: Read and write
93
+ - Pull requests: Read and write
94
+ - Metadata: Read-only
95
+
96
+ ### When It's Needed
97
+
98
+ Only `jira-wrap-sync` uses the GitHub MCP — specifically when creating a pull request as part of the wrap-up workflow. If you don't use that feature, you can skip this setup entirely.
99
+
100
+ ---
101
+
102
+ ## Troubleshooting
103
+
104
+ ### MCP server not starting
105
+
106
+ - Ensure `npx` is available in your PATH. Run `npx --version` in your terminal.
107
+ - Check the VS Code Output panel (View → Output → select "MCP" from the dropdown) for error messages.
108
+ - Try running the `npx` command manually in a terminal to see if it installs and starts correctly.
109
+
110
+ ### Authentication failures (401)
111
+
112
+ - **Atlassian:** Verify your site URL includes `.atlassian.net` (not the full `https://` URL). Confirm your email matches your Atlassian account. Regenerate the API token if needed.
113
+ - **GitHub:** Confirm the PAT hasn't expired. Check that it has the required scopes.
114
+
115
+ ### Wrong Atlassian instance
116
+
117
+ - `ATLASSIAN_SITE` should be just the domain, e.g. `your-company.atlassian.net` — not a full URL like `https://your-company.atlassian.net/jira`.
118
+
119
+ ### Rate limiting
120
+
121
+ - Atlassian APIs have rate limits. If you see 429 errors, the skills will back off automatically per the FCMP protocol. Avoid running multiple sync operations in rapid succession.
122
+
123
+ ### MCP calls return empty results
124
+
125
+ - Confirm you have permission to access the Jira project or Confluence space you're querying.
126
+ - Check that the project key or space key is correct.
@@ -0,0 +1,16 @@
1
+ # rzlv-flow Shared Resources
2
+
3
+ Resources are shared reference material installed alongside skills. They contain protocol definitions, file structure conventions, and schema specifications that multiple skills depend on.
4
+
5
+ ## Installation
6
+
7
+ When installed via the CLI, resources are placed in `docs/ai/resources/` in the target project. Skills reference them via relative paths and may ask the LLM to load them at the start of a workflow.
8
+
9
+ ## Resource Files
10
+
11
+ | File | Description |
12
+ |------|-------------|
13
+ | `fcmp-protocol.md` | Fetch-Compare-Merge-Push sync pattern — the core protocol for safe Atlassian read/write operations |
14
+ | `jira-file-structure.md` | Standard directory layout for local Jira mirrors (`docs/jira/{instance}/{project}/...`) |
15
+ | `confluence-file-structure.md` | Directory layout for local Confluence page mirrors with structured and flexible modes |
16
+ | `sync-state-format.md` | YAML frontmatter schema for Jira ticket and Confluence page files |
@@ -0,0 +1,179 @@
1
+ # Confluence File Structure — Local Page Mirrors
2
+
3
+ **Pattern:** Dual-mode local mirrors for Confluence pages
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ Skills that interact with Confluence maintain local mirrors of pages under `docs/confluence/{instance}/{space}/`. Two modes are supported depending on how the content is created:
10
+
11
+ - **Structured mode** — Orchestrator-driven, epic-based hierarchy with predefined page types
12
+ - **Flexible mode** — User-specified location and page structure for ad-hoc documentation
13
+
14
+ Both modes follow the FCMP protocol for safe sync operations and preserve manual edits made directly in Confluence.
15
+
16
+ ---
17
+
18
+ ## Base Path
19
+
20
+ ```
21
+ docs/confluence/{instance}/{space}/
22
+ ```
23
+
24
+ - `{instance}` — The Atlassian site identifier (e.g. `rezolve`)
25
+ - `{space}` — The Confluence space key (e.g. `ENG`, `PROJ`)
26
+
27
+ ---
28
+
29
+ ## Structured Mode
30
+
31
+ Used when creating Confluence pages from Jira epic structures — typically driven by the `atlassian-orchestrator` skill.
32
+
33
+ ### Hierarchy
34
+
35
+ ```
36
+ docs/confluence/{instance}/{space}/
37
+ └── {initiative-name}/
38
+ ├── index.md # Initiative Overview
39
+ └── {epic-name}/
40
+ ├── overview.md
41
+ ├── technical-architecture.md
42
+ ├── decisions.md
43
+ ├── strategic-context.md
44
+ ├── research-and-findings.md # Created only if relevant content exists
45
+ ├── assumptions.md # Created only if relevant content exists
46
+ └── implementation-guidance.md
47
+ ```
48
+
49
+ ### Page Types
50
+
51
+ | Page Type | Source | Description |
52
+ |-----------|--------|-------------|
53
+ | Initiative Overview (`index.md` at initiative root) | Initiative metadata | Top-level overview: goals, epic breakdown, navigation |
54
+ | `overview.md` | Epic `_docs/` | High-level epic overview and goals |
55
+ | `technical-architecture.md` | Epic `_docs/` | Architecture decisions and technical design |
56
+ | `decisions.md` | Epic `_docs/` | Decision log and rationale |
57
+ | `strategic-context.md` | Epic `_docs/` | Business context and strategic alignment |
58
+ | `research-and-findings.md` | Epic `_docs/` | User research, discoveries, and clarifications* |
59
+ | `assumptions.md` | Epic `_docs/` | Assumptions with confidence levels and validation status* |
60
+ | `implementation-guidance.md` | Epic `_docs/` | High-value technical guides for development |
61
+
62
+ \* Created only if the source material includes relevant content.
63
+
64
+ ### When to Use
65
+
66
+ - Creating Confluence pages from Jira epic structure with `_docs/` content
67
+ - Orchestrator-driven workflows that generate documentation alongside Jira structures
68
+
69
+ ### Sync Rules (Structured)
70
+
71
+ - Generate Confluence pages from Jira `_docs/` folders
72
+ - Sync BEFORE Jira creation (to get page IDs for linking)
73
+ - Embed Confluence links in Jira ticket descriptions
74
+ - Follow initiative/epic hierarchy
75
+
76
+ ---
77
+
78
+ ## Flexible Mode
79
+
80
+ Used for ad-hoc documentation, user-specified locations, and non-epic-based content.
81
+
82
+ ### Hierarchy
83
+
84
+ ```
85
+ docs/confluence/{instance}/{space}/
86
+ └── {user-specified-path}/
87
+ └── {page-name}.md
88
+ ```
89
+
90
+ No predefined structure — adapts to the user's needs.
91
+
92
+ ### When to Use
93
+
94
+ - Generic documentation and manual publishing
95
+ - Publishing existing local docs to Confluence retroactively
96
+ - Content created by `context-analyst` or other skills outside an epic workflow
97
+ - Any user-driven page creation
98
+
99
+ ### Prompts for Flexible Mode
100
+
101
+ Skills using flexible mode should ask:
102
+ 1. "Where should I place this page in Confluence? (space/parent)"
103
+ 2. "Page title?"
104
+ 3. "Should I link to a Jira ticket?"
105
+
106
+ ### Sync Rules (Flexible)
107
+
108
+ - User specifies target location (space + parent page)
109
+ - Optional: Link back to Jira ticket if provided
110
+ - No predefined structure — adapt to user's needs
111
+ - Can publish existing docs to Confluence retroactively
112
+
113
+ ---
114
+
115
+ ## Ownership
116
+
117
+ ### Generated Pages (Structured Mode)
118
+
119
+ - **Owner:** Orchestrator-type skills (e.g. `atlassian-orchestrator`)
120
+ - **Source:** `_docs/` folders from the Jira file structure
121
+ - **Description:** Automatically generated from epic documentation; synced to Confluence
122
+
123
+ ### Manual / Ad-hoc Pages (Flexible Mode)
124
+
125
+ - **Owner:** User or any skill
126
+ - **Source:** Any markdown file
127
+ - **Location:** User-specified or derived from context
128
+
129
+ ### Manual Edits in Confluence
130
+
131
+ - **Preserved:** Yes, always — regardless of mode
132
+ - **Protocol:** FCMP ensures user edits in Confluence are never overwritten without merge
133
+
134
+ ---
135
+
136
+ ## Sync Rules (Both Modes)
137
+
138
+ - Follow the FCMP protocol when updating existing pages (see `fcmp-protocol.md`)
139
+ - Preserve manual edits made in Confluence
140
+ - Store page ID and URL in frontmatter after sync (see `sync-state-format.md`)
141
+
142
+ ---
143
+
144
+ ## Page File Format
145
+
146
+ Each local Confluence mirror file uses YAML frontmatter for sync metadata:
147
+
148
+ ```yaml
149
+ ---
150
+ sync:
151
+ confluence_page_id: "123456789"
152
+ confluence_url: "https://company.atlassian.net/wiki/spaces/ENG/pages/123456789"
153
+ space: "ENG"
154
+ parent_page_id: "987654321"
155
+ last_synced: "2025-12-11T10:30:00Z"
156
+ version: 5
157
+ remote_updated: "2025-12-11T09:15:00Z"
158
+
159
+ mode: "structured" # structured | flexible
160
+
161
+ source:
162
+ # For structured mode
163
+ jira_ticket: "PROJ-120"
164
+ doc_type: "technical-architecture"
165
+ generated_from: "docs/jira/rezolve/PROJ/user-authentication/_docs/technical-architecture.md"
166
+
167
+ # For flexible mode
168
+ # origin: "manual"
169
+ # linked_jira: "PROJ-123"
170
+ ---
171
+
172
+ # Page Title
173
+
174
+ Page content in markdown, converted to Confluence storage format during sync.
175
+ ```
176
+
177
+ See `sync-state-format.md` for full frontmatter schema details.
178
+
179
+ <!-- TODO: Pull additional detail from full rzlv-flow repo for Leaf Bundle pattern specifics and doc-type-mapping rules if available -->
@@ -0,0 +1,19 @@
1
+ # Confluence Page Templates
2
+
3
+ Starter scaffolds for Confluence pages created by the `atlassian-orchestrator` skill (structured mode). Each template contains standard section headings and placeholder tokens.
4
+
5
+ ## Usage
6
+
7
+ - Templates provide consistent section headings across generated pages.
8
+ - Replace `{tokens}` with actual content during page creation.
9
+ - Skills can load these templates instead of generating page structure from scratch.
10
+ - Users can customize templates to match their team's conventions.
11
+
12
+ ## Templates
13
+
14
+ | Template | File | Description |
15
+ |----------|------|-------------|
16
+ | Initiative Overview | `initiative-overview.md` | Top-level initiative page: goals, epic breakdown, navigation |
17
+ | Strategic Context | `strategic-context.md` | Business goals, product vision, strategic decisions |
18
+ | Technical Architecture | `technical-architecture.md` | System design, tech decisions, implementation patterns |
19
+ | Decisions | `decisions.md` | Consolidated decision log with rationale |
@@ -0,0 +1,36 @@
1
+ ---
2
+ sync:
3
+ confluence_page_id: ""
4
+ confluence_url: ""
5
+ confluence_title: "Decision Log — {Initiative/Epic Name}"
6
+ space: "{SPACE}"
7
+ parent_page_id: ""
8
+ last_synced: ""
9
+ version: 1
10
+ remote_updated: ""
11
+ mode: "structured"
12
+ source:
13
+ jira_ticket: "{EPIC-KEY}"
14
+ doc_type: "decisions"
15
+ generated_from: ""
16
+ ---
17
+
18
+ # Decision Log — {Initiative/Epic Name}
19
+
20
+ ## Active Decisions
21
+
22
+ | ID | Decision | Date | Rationale | Confidence | Impact |
23
+ |----|----------|------|-----------|------------|--------|
24
+ | {id} | {decision} | {date} | {rationale} | {High/Medium/Low} | {impact area} |
25
+
26
+ ## Pending Decisions
27
+
28
+ | ID | Question | Context | Options | Owner | Deadline |
29
+ |----|----------|---------|---------|-------|----------|
30
+ | {id} | {question} | {context} | {options} | {owner} | {deadline} |
31
+
32
+ ## Superseded Decisions
33
+
34
+ | ID | Original Decision | Superseded By | Date | Reason |
35
+ |----|-------------------|---------------|------|--------|
36
+ | {id} | {original} | {new decision} | {date} | {reason} |
@@ -0,0 +1,40 @@
1
+ ---
2
+ sync:
3
+ confluence_page_id: ""
4
+ confluence_url: ""
5
+ confluence_title: "{Initiative Name}"
6
+ space: "{SPACE}"
7
+ parent_page_id: ""
8
+ last_synced: ""
9
+ version: 1
10
+ remote_updated: ""
11
+ mode: "structured"
12
+ source:
13
+ jira_initiative_key: "{INITIATIVE-KEY}"
14
+ ---
15
+
16
+ # {Initiative Name}
17
+
18
+ ## Overview
19
+
20
+ {Brief summary of the initiative — 2-3 sentences covering purpose and strategic goals.}
21
+
22
+ ## Epic Breakdown
23
+
24
+ | Epic | Description | Status | Stories | Confluence |
25
+ |------|-------------|--------|---------|------------|
26
+ | {EPIC-KEY} | {Epic summary} | {status} | {count} | [link]({confluence_url}) |
27
+
28
+ ## Quick Navigation
29
+
30
+ - [{Epic Name} — Overview]({epic-overview-url})
31
+ - [{Epic Name} — Technical Architecture]({epic-tech-arch-url})
32
+ - [{Epic Name} — Decisions]({epic-decisions-url})
33
+
34
+ ## Timeline & Dependencies
35
+
36
+ {Key dates, milestones, and cross-team dependencies.}
37
+
38
+ ## Success Criteria
39
+
40
+ {Measurable outcomes that define initiative success.}
@@ -0,0 +1,44 @@
1
+ ---
2
+ sync:
3
+ confluence_page_id: ""
4
+ confluence_url: ""
5
+ confluence_title: "Strategic Context — {Initiative/Epic Name}"
6
+ space: "{SPACE}"
7
+ parent_page_id: ""
8
+ last_synced: ""
9
+ version: 1
10
+ remote_updated: ""
11
+ mode: "structured"
12
+ source:
13
+ jira_ticket: "{EPIC-KEY}"
14
+ doc_type: "strategic-context"
15
+ generated_from: ""
16
+ ---
17
+
18
+ # Strategic Context — {Initiative/Epic Name}
19
+
20
+ ## Business Objectives
21
+
22
+ {Business goals this work supports. Include measurable targets where possible.}
23
+
24
+ ## Product Vision
25
+
26
+ {Target users, value proposition, and how this fits the broader product strategy.}
27
+
28
+ ## Market Context
29
+
30
+ {Competitive landscape, market timing, and external factors influencing this work.}
31
+
32
+ ## Success Criteria
33
+
34
+ {Measurable outcomes — metrics, thresholds, and how they will be evaluated.}
35
+
36
+ ## Strategic Decisions
37
+
38
+ | Decision | Rationale | Date | Confidence |
39
+ |----------|-----------|------|------------|
40
+ | {decision} | {why} | {date} | {High/Medium/Low} |
41
+
42
+ ## Related Documents
43
+
44
+ - [{Document title}]({url}) — {brief description}
@@ -0,0 +1,48 @@
1
+ ---
2
+ sync:
3
+ confluence_page_id: ""
4
+ confluence_url: ""
5
+ confluence_title: "Technical Architecture — {Initiative/Epic Name}"
6
+ space: "{SPACE}"
7
+ parent_page_id: ""
8
+ last_synced: ""
9
+ version: 1
10
+ remote_updated: ""
11
+ mode: "structured"
12
+ source:
13
+ jira_ticket: "{EPIC-KEY}"
14
+ doc_type: "technical-architecture"
15
+ generated_from: ""
16
+ ---
17
+
18
+ # Technical Architecture — {Initiative/Epic Name}
19
+
20
+ ## System Overview
21
+
22
+ {High-level architecture description. Key components and how they interact.}
23
+
24
+ ## Technology Stack
25
+
26
+ {Languages, frameworks, infrastructure, and key libraries.}
27
+
28
+ ## Architecture Decisions
29
+
30
+ | Decision | Options Considered | Chosen | Rationale |
31
+ |----------|--------------------|--------|-----------|
32
+ | {decision} | {options} | {chosen} | {why} |
33
+
34
+ ## Integration Points
35
+
36
+ {External systems, APIs, data flows, and contract details.}
37
+
38
+ ## Performance & Scalability
39
+
40
+ {Performance targets, scalability strategies, and known constraints.}
41
+
42
+ ## Security Considerations
43
+
44
+ {Authentication, authorization, data protection, and compliance requirements.}
45
+
46
+ ## Implementation Patterns
47
+
48
+ {Key patterns and approaches used in this codebase.}