-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yaml
More file actions
236 lines (206 loc) · 8.7 KB
/
config.yaml
File metadata and controls
236 lines (206 loc) · 8.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# Meta Configuration Example
# Combined configuration for all activity summary tools.
# Copy this to config/config.yaml and customize for your setup.
# =============================================================================
# API KEYS
# =============================================================================
# Store API keys here (environment variables take precedence if set).
# Get keys from:
# OpenAI: https://platform.openai.com/api-keys
# Gemini: https://aistudio.google.com/apikey
# Anthropic: https://console.anthropic.com/settings/keys
api_keys:
# openai: "sk-..."
# gemini: "AI..."
# anthropic: "sk-ant-..."
# =============================================================================
# COMPANY & CLIENT CONTEXT
# =============================================================================
# Global context is included in all LLM summaries - describe your company
global_context: |
Acme Consulting is a software development consultancy specializing in IoT,
mobile apps, and embedded systems. We focus on quality, maintainability,
and delivering products that can be updated in the field.
# Client definitions - maps repository patterns to clients
clients:
# Example: Client with full configuration (technical audience)
"Acme Corp":
directories:
- "acme-*" # Matches acme-firmware, acme-ios, etc.
- "AcmeSDK" # Exact match
exclude:
- "*-legacy" # Exclude legacy projects
# Audience level controls summary language complexity:
# technical - Deep technical knowledge assumed, use precise terminology
# developer - Developer but may not know domain specifics
# mixed - Varying technical knowledge (default)
# business - Business stakeholder, explain value and outcomes
# general - Minimal technical background, plain language only
audience: technical
context: |
Acme Corp is a consumer electronics company. We develop their flagship
product's firmware and companion mobile apps. The work involves BLE
communication, embedded C development, and iOS/Android apps.
# Example: Client with business-focused summaries
"Beta Inc":
directories:
- "beta-*"
audience: business # Non-technical stakeholders receive the reports
# Example: Client with mixed audience (default)
"Gamma LLC":
directories:
- "gamma*"
# audience: mixed # This is the default if not specified
context: |
Gamma LLC provides industrial automation solutions. Our role is
developing the control firmware and web dashboard.
# Optional: Set default client for unmatched repositories
# default_client: "Internal"
# =============================================================================
# EXCLUSION PATTERNS
# =============================================================================
# Files/directories matching these patterns are excluded from line count statistics.
excludes:
# Global exclusions (apply to all projects)
global:
- "*.hex"
- "*.xcodeproj/*"
- "node_modules/*"
- "*.min.js"
# Project-specific exclusions
projects:
acme-firmware:
- "vendor/*"
- "third_party/*"
# =============================================================================
# HTML REPORT STYLING
# =============================================================================
# Configure company branding and client-specific styling for HTML reports.
html_report:
# Theme: "light" or "dark"
theme: "light"
# Company branding (your company)
company:
name: "Acme Consulting"
url: "https://www.acme-consulting.example/"
# Logo SVG file path (relative to config directory)
# Leave empty to use text-only display
logo: ""
# Default accent colors (CSS color values)
defaults:
accent_primary: "#2196F3" # Blue
accent_secondary: "#1976D2" # Darker blue
# Client-specific branding
clients:
"Acme Corp":
accent_primary: "#4CAF50" # Green
accent_secondary: "#388E3C" # Darker green
logo: ""
icon: "🏭"
# Per-client deployment overrides
deploy:
cloudflare:
project_name: "acme-dev-reports" # Full project name (ignores prefix)
# Additional emails with access (combined with global access_emails)
access_emails:
- "cto@acme-corp.example"
- "pm@acme-corp.example"
"Beta Inc":
accent_primary: "#FF9800" # Orange
accent_secondary: "#F57C00" # Darker orange
logo: ""
icon: "🚀"
# Per-client deployment overrides
deploy:
s3:
# Custom URL for this client (e.g., CloudFront distribution)
url: "https://reports.beta-inc.example/beta_inc/index.html"
# Example: If Beta Inc is a client of Acme Corp (subcontracted work),
# you can override the company shown in the header:
# company_override:
# name: "Acme Corp"
# url: "https://acme.example.com"
# logo: "acme.svg"
Other:
accent_primary: "#78909C" # Blue-grey
accent_secondary: "#546E7A" # Darker blue-grey
logo: ""
icon: "📁"
# =============================================================================
# DEPLOYMENT SETTINGS
# =============================================================================
# Configure how reports are deployed/shared with clients.
deploy:
providers:
# Zip provider - creates downloadable zip files
zip:
output_dir: "output/zips" # Where to save zip files
# S3 provider - deploy to AWS S3 (requires AWS CLI)
# Install AWS CLI: pip install awscli
# Configure credentials: aws configure
s3:
bucket: "" # S3 bucket name (or use S3_BUCKET env var)
region: "us-east-1" # AWS region (or use AWS_REGION env var)
prefix: "" # Optional path prefix within bucket
# Cloudflare Pages - deploy to Cloudflare (requires wrangler CLI)
# Install wrangler: npm install -g wrangler
# Login: wrangler login
cloudflare:
# Project name prefix (e.g., "reports" -> "reports-acme.pages.dev")
project_prefix: "reports"
# Account ID (leave empty to use CLOUDFLARE_ACCOUNT_ID env var)
account_id: ""
# API token for Access control (leave empty to use CLOUDFLARE_API_TOKEN env var)
# Required for Cloudflare Access - restricts who can view reports
# Create at: https://dash.cloudflare.com/profile/api-tokens
# Permissions needed: Account > Access: Organizations, Identity Providers, and Groups > Edit
api_token: ""
# Global access emails (all clients will include these)
access_emails:
- "admin@acme-consulting.example"
# =============================================================================
# LLM PROMPT OVERRIDES (Optional)
# =============================================================================
# Override the default system prompts used for LLM summarization.
# These are multiline strings - use | for literal block scalar.
# If not specified, built-in defaults are used.
# prompts:
# # Period/monthly summaries (client-facing)
# period_summary: |
# You are an expert at summarizing software development activity.
# Given git activity data, provide a concise summary...
#
# # Client summary reports (client-facing)
# final_summary: |
# You are an expert at creating comprehensive development reports.
# Create a cohesive narrative that captures the work accomplished...
#
# # Internal company summary (your company-facing)
# internal_summary: |
# You are creating an internal activity report.
# Summarize work done across all clients...
# =============================================================================
# PUBLIC SUMMARY SETTINGS (Optional)
# =============================================================================
# Control how client information appears in public-facing summaries.
# Public summaries are suitable for blog posts, social media, annual reports.
public_summary:
# Default disclosure level: "full", "anonymize", or "suppress"
# full - Use actual client name in public content
# anonymize - Replace with description (default if none specified)
# suppress - Exclude from public summary entirely
default_disclosure: "anonymize"
# Per-client disclosure overrides
clients:
# Example: Show this client's name publicly
# "Open Source Project":
# disclosure: "full"
# Example: Anonymize with a custom description
# "Acme Corp":
# disclosure: "anonymize"
# description: "a consumer electronics company"
# Example: Suppress entirely (confidential client)
# "Secret Client":
# disclosure: "suppress"
# Set to false to disable public summary generation entirely
# enabled: true