@chappibunny/repolens 1.9.1 → 1.9.2

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.
@@ -0,0 +1,470 @@
1
+ # Production Deployment Checklist
2
+
3
+ Ensure RepoLens is properly configured and secured before deploying to production. This checklist helps teams validate their setup and avoid common pitfalls.
4
+
5
+ **Version:** 1.5.0
6
+ **Last Updated:** March 2026
7
+
8
+ ---
9
+
10
+ ## 🎯 Pre-Deployment Requirements
11
+
12
+ ### ✅ System Requirements
13
+
14
+ - [ ] **Node.js 18+** installed (`node --version`)
15
+ - [ ] **npm 8+** or equivalent package manager
16
+ - [ ] **Git repository** initialized with `.git` directory
17
+ - [ ] **Write access** to repository for GitHub Actions workflows
18
+
19
+ ### ✅ Package Installation
20
+
21
+ - [ ] Install RepoLens: `npx @chappibunny/repolens@latest --version`
22
+ - [ ] Run version check: Should display `1.5.0` or higher
23
+ - [ ] Check for updates: Tool notifies if newer version available
24
+
25
+ ---
26
+
27
+ ## 📋 Configuration Setup
28
+
29
+ ### ✅ Initialize Configuration
30
+
31
+ ```bash
32
+ npx @chappibunny/repolens@latest init
33
+ ```
34
+
35
+ - [ ] `.repolens.yml` created in repository root
36
+ - [ ] `.env.example` created (if not exists)
37
+ - [ ] `.github/workflows/` directory created
38
+ - [ ] GitHub Actions workflow file generated
39
+
40
+ ### ✅ Validate Configuration Schema
41
+
42
+ ```bash
43
+ npx @chappibunny/repolens@latest doctor
44
+ ```
45
+
46
+ **Expected Output:** ✅ All checks pass
47
+
48
+ **Doctor validates:**
49
+ - [ ] `.repolens.yml` exists and is valid YAML
50
+ - [ ] `configVersion: 1` present
51
+ - [ ] At least one publisher configured (notion, markdown, or confluence)
52
+ - [ ] Required scan patterns specified
53
+ - [ ] `.git` directory present
54
+
55
+ ### ✅ Repository Scanning Configuration
56
+
57
+ Edit `.repolens.yml`:
58
+
59
+ ```yaml
60
+ scan:
61
+ include:
62
+ - "src/**/*.{js,ts,jsx,tsx}"
63
+ - "lib/**/*.{js,ts}"
64
+ - "app/**/*.{js,ts,jsx,tsx}"
65
+
66
+ exclude:
67
+ - "**/node_modules/**"
68
+ - "**/dist/**"
69
+ - "**/build/**"
70
+ - "**/*.test.{js,ts}"
71
+ - "**/__tests__/**"
72
+ - "**/fixtures/**"
73
+ ```
74
+
75
+ **Verify:**
76
+ - [ ] Patterns match your project structure
77
+ - [ ] Exclude patterns prevent scanning generated code
78
+ - [ ] Test locally: `npx @chappibunny/repolens@latest publish --dry-run`
79
+
80
+ ---
81
+
82
+ ## 🔐 Security Configuration
83
+
84
+ ### ✅ Security Validation (Phase 3)
85
+
86
+ **Run Security Checks**:
87
+ ```bash
88
+ npm audit
89
+ npm test -- tests/security-fuzzing.test.js
90
+ ```
91
+
92
+ **Expected Results**:
93
+ - [ ] **0 vulnerabilities** in dependency audit
94
+ - [ ] **All security tests passing**
95
+ - Secrets detection (6 tests)
96
+ - Config validation security (7 tests)
97
+ - Path validation (4 tests)
98
+ - Fuzzing malformed YAML (6 tests)
99
+ - Injection attack prevention (16 tests)
100
+ - Boundary conditions (4 tests)
101
+
102
+ **Verify Security Features**:
103
+ - [ ] Config validation active (rejects injection attacks)
104
+ - [ ] Secrets sanitization active (all logger output cleaned)
105
+ - [ ] Rate limiting active (3 req/sec for APIs)
106
+ - [ ] GitHub Actions pinned to commit SHAs
107
+ - [ ] Minimal permissions in workflows
108
+
109
+ **Security Documentation**:
110
+ - [ ] Review [SECURITY.md](../SECURITY.md) for threat model
111
+ - [ ] Understand secret detection patterns
112
+ - [ ] Configure security reporting process
113
+
114
+ ### ✅ GitHub Secrets Setup
115
+
116
+ Navigate to: **Repository Settings → Secrets and variables → Actions → New repository secret**
117
+
118
+ #### Required for Notion Publishing
119
+
120
+ - [ ] **NOTION_TOKEN**
121
+ - Create at: https://www.notion.so/my-integrations
122
+ - Type: Internal Integration
123
+ - Capabilities: Insert content, Read content, Update content
124
+ - Permissions: Content (Read & Write)
125
+ - Test: `curl -H "Authorization: Bearer $NOTION_TOKEN" https://api.notion.com/v1/users/me`
126
+
127
+ - [ ] **NOTION_WORKSPACE_ID** (or **REPOLENS_NOTION_WORKSPACE_ID**)
128
+ - Get from: Notion page URL → Database ID
129
+ - Format: 32-character hex string (e.g., `abc12345def67890...`)
130
+
131
+ #### Optional: Confluence Publishing
132
+
133
+ - [ ] **CONFLUENCE_URL**
134
+ - Your Atlassian Cloud URL (e.g., `https://your-company.atlassian.net/wiki`)
135
+
136
+ - [ ] **CONFLUENCE_EMAIL**
137
+ - Your Atlassian account email
138
+
139
+ - [ ] **CONFLUENCE_API_TOKEN**
140
+ - Create at: https://id.atlassian.com/manage-profile/security/api-tokens
141
+
142
+ - [ ] **CONFLUENCE_SPACE_KEY**
143
+ - Your target Confluence space key (e.g., `DOCS`)
144
+
145
+ - [ ] **CONFLUENCE_PARENT_PAGE_ID**
146
+ - Page ID where documentation should be nested
147
+
148
+ #### Optional: AI-Enhanced Documentation
149
+
150
+ - [ ] **REPOLENS_AI_API_KEY** (or **OPENAI_API_KEY**)
151
+ - OpenAI: Create at https://platform.openai.com/api-keys
152
+ - Anthropic: Create at https://console.anthropic.com/settings/keys
153
+ - Azure: Get from Azure Portal → Azure OpenAI Service
154
+
155
+ - [ ] **AI_PROVIDER** (if not OpenAI)
156
+ - Values: `openai` | `anthropic` | `azure` | `ollama`
157
+ - Default: `openai`
158
+
159
+ #### Optional: Error Tracking (Step 1 Complete)
160
+
161
+ - [ ] **REPOLENS_TELEMETRY_ENABLED**
162
+ - Values: `true` | `false`
163
+ - Default: `false` (opt-in)
164
+ - Sentry DSN configured in `src/utils/telemetry.js` (if forked)
165
+
166
+ ### ✅ Secrets Validation
167
+
168
+ ```bash
169
+ # Test locally with .env (DO NOT commit .env to git)
170
+ cp .env.example .env
171
+ # Add secrets to .env
172
+ npx @chappibunny/repolens@latest publish
173
+ ```
174
+
175
+ **Verify:**
176
+ - [ ] No "missing secret" errors
177
+ - [ ] Notion pages created/updated
178
+ - [ ] AI generation works (if enabled)
179
+ - [ ] `.env` added to `.gitignore`
180
+
181
+ ---
182
+
183
+ ## 🚀 GitHub Actions Configuration
184
+
185
+ ### ✅ Workflow Migration (if upgrading from v0.3.x)
186
+
187
+ ```bash
188
+ npx @chappibunny/repolens@latest migrate
189
+ ```
190
+
191
+ **Verify changes:**
192
+ - [ ] Preview with `--dry-run` flag first
193
+ - [ ] Review diff: `git diff .github/workflows/`
194
+ - [ ] Package updated to `@chappibunny/repolens@latest`
195
+ - [ ] Node.js setup step added (`actions/setup-node@v4`)
196
+ - [ ] Environment variables added to publish step
197
+ - [ ] Backup files created (`.github/workflows/*.backup`)
198
+
199
+ ### ✅ Workflow Permissions
200
+
201
+ Edit `.github/workflows/*.yml`:
202
+
203
+ ```yaml
204
+ permissions:
205
+ contents: write # For PR comments (future: reduce to read)
206
+ pull-requests: write # If using PR comment delivery
207
+ ```
208
+
209
+ **Verify:**
210
+ - [ ] Permissions match your security policy
211
+ - [ ] Workflows run successfully in Actions tab
212
+ - [ ] No permission errors in workflow logs
213
+
214
+ ### ✅ Branch-Aware Publishing (Notion)
215
+
216
+ Edit `.repolens.yml`:
217
+
218
+ ```yaml
219
+ notion:
220
+ workspaceId: ${{ secrets.NOTION_WORKSPACE_ID }}
221
+ branches:
222
+ - main
223
+ - production
224
+ # Add other branches that should publish
225
+ ```
226
+
227
+ **Purpose:** Prevents feature branches from overwriting production Notion pages.
228
+
229
+ **Verify:**
230
+ - [ ] Only intended branches listed
231
+ - [ ] Test on feature branch: Should skip Notion publish
232
+ - [ ] Test on main branch: Should publish successfully
233
+
234
+ ### ✅ Caching Configuration
235
+
236
+ Workflow should include:
237
+
238
+ ```yaml
239
+ - name: Cache RepoLens artifacts
240
+ uses: actions/cache@v4
241
+ with:
242
+ path: .repolens/
243
+ key: repolens-${{ github.ref_name }}-${{ hashFiles('**/*.js', '**/*.ts') }}
244
+ restore-keys: |
245
+ repolens-${{ github.ref_name }}-
246
+ repolens-main-
247
+ ```
248
+
249
+ **Verify:**
250
+ - [ ] Cache key includes branch name (prevents cross-branch pollution)
251
+ - [ ] Cache hit reduces workflow time by 30-50%
252
+ - [ ] Old caches cleared periodically (Settings → Actions → Caches)
253
+
254
+ ---
255
+
256
+ ## 📊 Monitoring & Observability
257
+
258
+ ### ✅ GitHub Actions Monitoring
259
+
260
+ Navigate to: **Actions tab** → Select workflow run
261
+
262
+ **Check:**
263
+ - [ ] Workflow completes successfully (green checkmark)
264
+ - [ ] Scan step finds expected file count
265
+ - [ ] Render step generates documents without errors
266
+ - [ ] Publish step updates Notion/Confluence/Markdown successfully
267
+ - [ ] Time: <2 min for deterministic, <5 min with AI
268
+
269
+ ### ✅ Error Tracking (if telemetry enabled)
270
+
271
+ Sentry Dashboard: https://sentry.io/organizations/YOUR_ORG/projects/
272
+
273
+ **Monitor:**
274
+ - [ ] Error rate: Should be near 0%
275
+ - [ ] Sample rate: 10% of events captured
276
+ - [ ] Breadcrumbs: Show command flow before errors
277
+ - [ ] Context: Includes command, config, file count
278
+
279
+ ### ✅ Notion Integration Health
280
+
281
+ **Validate:**
282
+ - [ ] Pages created in correct workspace
283
+ - [ ] Titles match expected format (`[branch]` suffix for non-main)
284
+ - [ ] Content includes all 15 document sections
285
+ - [ ] Diagrams render properly (Unicode box-drawing)
286
+ - [ ] Updates don't create duplicates
287
+
288
+ ### ✅ Markdown Output Verification
289
+
290
+ ```bash
291
+ ls -la .repolens/docs/
292
+ ```
293
+
294
+ **Expected files:**
295
+ - [ ] `system-overview.md`
296
+ - [ ] `module-catalog.md`
297
+ - [ ] `api-surface.md`
298
+ - [ ] `route-map.md`
299
+ - [ ] `architecture-diff.md` (if changes detected)
300
+ - [ ] `system-map.md` (ASCII dependency diagram)
301
+
302
+ ---
303
+
304
+ ## 🧪 Testing & Validation
305
+
306
+ ### ✅ Local Testing
307
+
308
+ ```bash
309
+ # Dry run (no actual publishing)
310
+ npx @chappibunny/repolens@latest publish --dry-run
311
+
312
+ # Full local run
313
+ npx @chappibunny/repolens@latest publish
314
+
315
+ # Check generated artifacts
316
+ ls -R .repolens/
317
+ cat .repolens/docs/system-overview.md
318
+ ```
319
+
320
+ **Verify:**
321
+ - [ ] Scan completes without warnings
322
+ - [ ] File count matches expectations
323
+ - [ ] Documents generated successfully
324
+ - [ ] Markdown files readable and accurate
325
+ - [ ] Notion pages updated (if configured)
326
+
327
+ ### ✅ PR Testing
328
+
329
+ 1. Create test PR with small change
330
+ 2. Wait for GitHub Actions workflow to complete
331
+ 3. Verify:
332
+ - [ ] Workflow runs on PR
333
+ - [ ] Architecture diff generated (if enabled)
334
+ - [ ] PR comment posted (if delivery configured)
335
+ - [ ] No secrets leaked in logs
336
+
337
+ ### ✅ Performance Benchmarking
338
+
339
+ **Expected timings:**
340
+ - [ ] Scan: 5-30 seconds (depends on repo size)
341
+ - [ ] Render: 2-10 seconds (deterministic mode)
342
+ - [ ] AI Generation: 60-180 seconds (if enabled)
343
+ - [ ] Publish: 10-30 seconds (Notion API calls)
344
+ - [ ] **Total:** <2 min (deterministic), <5 min (with AI)
345
+
346
+ **If exceeding limits:**
347
+ - Check `scan.exclude` patterns
348
+ - Reduce AI model complexity
349
+ - Enable GitHub Actions caching
350
+
351
+ ---
352
+
353
+ ## 🔄 Maintenance Tasks
354
+
355
+ ### ✅ Weekly
356
+
357
+ - [ ] Review Notion pages for accuracy
358
+ - [ ] Check GitHub Actions workflow success rate
359
+ - [ ] Monitor Sentry error rate (if enabled)
360
+ - [ ] Verify documentation reflects recent changes
361
+
362
+ ### ✅ Monthly
363
+
364
+ - [ ] Update RepoLens: `npx @chappibunny/repolens@latest version` (check for updates)
365
+ - [ ] Run migration: `npx @chappibunny/repolens@latest migrate` (if new version)
366
+ - [ ] Review Known Issues: Read `KNOWN_ISSUES.md` for new workarounds
367
+ - [ ] Rotate API keys: Best practice for long-running integrations
368
+
369
+ ### ✅ Quarterly
370
+
371
+ - [ ] Audit GitHub Secrets: Ensure tokens not expired
372
+ - [ ] Review `.repolens.yml`: Update exclude patterns as codebase grows
373
+ - [ ] Test disaster recovery: Delete Notion pages, re-run publish
374
+ - [ ] Update team documentation: Reflect any config changes
375
+
376
+ ---
377
+
378
+ ## 📈 Scaling Considerations
379
+
380
+ ### For Large Repositories (>5,000 files)
381
+
382
+ - [ ] Add aggressive `scan.exclude` patterns
383
+ - [ ] Consider splitting into multiple configs (monorepo support)
384
+ - [ ] Increase GitHub Actions timeout (default: 10 min)
385
+ - [ ] Use self-hosted runners for faster execution
386
+
387
+ ### For Large Teams (>10 developers)
388
+
389
+ - [ ] Document onboarding process (link to this checklist)
390
+ - [ ] Create shared `.repolens.yml` template
391
+ - [ ] Establish PR review process for config changes
392
+ - [ ] Consider dedicated Notion workspace for docs
393
+
394
+ ### For Multi-Repo Organizations
395
+
396
+ - [ ] Standardize `.repolens.yml` across repos
397
+ - [ ] Use organization-level GitHub Secrets
398
+ - [ ] Create shared Notion workspace structure
399
+ - [ ] Document cross-repo documentation strategy
400
+
401
+ ---
402
+
403
+ ## 🆘 Troubleshooting
404
+
405
+ ### Common Issues
406
+
407
+ #### "Config file not found"
408
+ ```bash
409
+ npx @chappibunny/repolens@latest doctor
410
+ # If fails: npx @chappibunny/repolens@latest init
411
+ ```
412
+
413
+ #### "NOTION_TOKEN not set"
414
+ - Check GitHub Secrets → Actions → Secrets
415
+ - Verify secret name matches exactly (case-sensitive)
416
+ - Test locally: `echo $NOTION_TOKEN` (should not be empty)
417
+
418
+ #### "Invalid workflow file"
419
+ - Run migration: `npx @chappibunny/repolens@latest migrate`
420
+ - Review KNOWN_ISSUES.md for recent fixes
421
+ - Check YAML syntax: https://www.yamllint.com/
422
+
423
+ #### "Rate limit exceeded" (OpenAI)
424
+ - Upgrade to paid tier, or
425
+ - Use `AI_PROVIDER=ollama` (local), or
426
+ - Disable AI: Remove `REPOLENS_AI_API_KEY` secret
427
+
428
+ #### "Scan found 0 files"
429
+ - Check `scan.include` patterns in `.repolens.yml`
430
+ - Verify patterns match your file structure
431
+ - Test: `npx fast-glob "src/**/*.js"` (should list files)
432
+
433
+ ### Get Help
434
+
435
+ - **Documentation:** README.md, KNOWN_ISSUES.md
436
+ - **GitHub Issues:** https://github.com/CHAPIBUNNY/repolens/issues
437
+ - **Error Tracking:** Automatic (if `REPOLENS_TELEMETRY_ENABLED=true`)
438
+
439
+ ---
440
+
441
+ ## ✅ Final Sign-Off
442
+
443
+ Before declaring "production ready":
444
+
445
+ - [ ] All checklist items above completed
446
+ - [ ] `npx @chappibunny/repolens@latest doctor` passes
447
+ - [ ] Test PR successfully generated documentation
448
+ - [ ] Team reviewed and approved generated docs
449
+ - [ ] Notion workspace configured and accessible
450
+ - [ ] Monitoring in place (GitHub Actions + Sentry)
451
+ - [ ] Team trained on updating `.repolens.yml`
452
+ - [ ] Known Issues documented for team reference
453
+
454
+ **Approved by:** _______________
455
+ **Date:** _______________
456
+ **RepoLens Version:** 1.5.0
457
+
458
+ ---
459
+
460
+ ## 📚 Additional Resources
461
+
462
+ - **README.md** - Quick start, installation, configuration
463
+ - **KNOWN_ISSUES.md** - Current limitations and workarounds
464
+ - **TELEMETRY.md** - Privacy policy and error tracking details
465
+ - **CHANGELOG.md** - Version history and upgrade notes
466
+ - **GitHub Issues** - Bug reports and feature requests
467
+
468
+ ---
469
+
470
+ **Pro Tip:** Bookmark this checklist and run through it quarterly to ensure your RepoLens deployment stays healthy and up-to-date.
@@ -0,0 +1,151 @@
1
+ # RepoLens Roadmap
2
+
3
+ This document outlines the development path for RepoLens — what's shipped, what's next, and where we're headed.
4
+
5
+ **Current Version:** 1.5.0
6
+ **npm Package:** `@chappibunny/repolens`
7
+ **Last Updated:** March 2026
8
+
9
+ ---
10
+
11
+ ## What's Shipped (v0.1.0 → v1.1.0)
12
+
13
+ Everything below is live, tested, and available on npm.
14
+
15
+ ### Core CLI (v0.1.0 – v0.2.0)
16
+ - ✅ `init`, `doctor`, `publish`, `migrate`, `feedback`, `version`, `help` commands
17
+ - ✅ Auto-discovery of `.repolens.yml` from cwd or parent directories
18
+ - ✅ Repository scanning with fast-glob + performance guardrails (warn at 10k, fail at 50k files)
19
+ - ✅ Package.json metadata extraction (tech stack, dependencies)
20
+ - ✅ Branch-aware publishing with title namespacing
21
+ - ✅ Unicode architecture diagrams (replaced Mermaid CLI)
22
+
23
+ ### Multi-Platform Publishing (v0.3.0 – v0.6.0)
24
+ - ✅ **Markdown** — Write to `.repolens/` directory
25
+ - ✅ **Notion** — Create/update pages via Notion API with branch filtering
26
+ - ✅ **Confluence** — Atlassian Cloud REST API v1, storage format, Basic Auth
27
+ - ✅ **Discord** — Rich embed webhook notifications (publish metrics, coverage)
28
+
29
+ ### AI-Assisted Documentation Intelligence (v0.4.0 – v0.5.0)
30
+ - ✅ 11 audience-aware documents (3 non-technical, 4 mixed, 4 technical)
31
+ - ✅ Provider-agnostic AI (OpenAI, Anthropic, Azure, Ollama/local models)
32
+ - ✅ Zero-hallucination architecture: structured JSON context only, never raw code
33
+ - ✅ Strict prompt templates with word limits and evidence-based reasoning
34
+ - ✅ Graceful fallback to deterministic docs if AI fails or is disabled
35
+
36
+ ### Business Domain & Data Flow Analysis (v0.4.0 – v0.5.0)
37
+ - ✅ 12 default business domain mappings (Authentication, Market Data, Payments, etc.)
38
+ - ✅ Custom domain definitions in `.repolens.yml`
39
+ - ✅ Heuristic-based data flow detection (4 flow types)
40
+ - ✅ Change impact analysis from git diffs
41
+
42
+ ### Security & Reliability (v0.4.0 – v0.6.0)
43
+ - ✅ Secret detection (15+ patterns: OpenAI, GitHub, AWS, Notion, etc.)
44
+ - ✅ Input validation with injection prevention (shell, path traversal, command substitution)
45
+ - ✅ Rate limiting (token bucket, 3 req/s for APIs)
46
+ - ✅ Exponential backoff retry logic
47
+ - ✅ Opt-in telemetry with secret sanitization
48
+ - ✅ CI security gates (dependency audit + secret scanning)
49
+ - ✅ 185 tests across 15 test files (including security/fuzzing tests)
50
+
51
+ ### CI/CD & npm Publishing (v0.5.0 – v0.6.4)
52
+ - ✅ GitHub Actions: `publish-docs.yml` (every push) + `release.yml` (tag-based)
53
+ - ✅ npm registry publishing (`npm publish --access public`)
54
+ - ✅ Workflow migration tool (`repolens migrate`)
55
+ - ✅ Cross-platform CI fix for optional dependency resolution
56
+ - ✅ User feedback via `repolens feedback` command
57
+
58
+ ### Polish & Reliability (v0.7.0)
59
+ - ✅ Interactive configuration wizard (`repolens init --interactive`)
60
+ - ✅ Watch mode for local development (`repolens watch`)
61
+ - ✅ Enhanced error messages with actionable guidance (centralized error catalog)
62
+ - ✅ Performance monitoring (scan/render/publish timing summary)
63
+ - ✅ Documentation coverage scoring improvements (section completeness, metrics.json snapshots)
64
+
65
+ ### Extended Analysis (v0.8.0)
66
+ - ✅ GraphQL schema detection (schema files, inline SDL, 11 library patterns, resolver detection)
67
+ - ✅ TypeScript type graph analysis (interfaces, type aliases, classes, enums, relationship graph)
68
+ - ✅ Dependency graph with cycle detection (ES/CJS imports, iterative DFS, hub/orphan analysis)
69
+ - ✅ Architecture drift detection (8 categories, severity levels, baseline snapshots)
70
+ - ✅ 4 new document types (graphql_schema, type_graph, dependency_graph, architecture_drift)
71
+ - ✅ 185 tests across 15 test files
72
+
73
+ ### Plugin System (v0.9.0)
74
+ - ✅ Plugin loader: resolve local paths and npm packages
75
+ - ✅ Plugin manager: registry, getters, lifecycle hook runner
76
+ - ✅ Custom renderers: plugins register new document types with `render(context)` functions
77
+ - ✅ Custom publishers: plugins register new output targets with `publish(cfg, renderedPages)` functions
78
+ - ✅ Lifecycle hooks: `afterScan`, `afterRender`, `afterPublish` with chained transforms
79
+ - ✅ Config support: `plugins` array in `.repolens.yml`
80
+ - ✅ 163 tests across 14 test files
81
+ - ✅ 185 tests across 15 test files (current)
82
+
83
+ ---
84
+
85
+ ## v1.0.0 — Stable Release ✅
86
+
87
+ **Shipped.** Tagged and published to npm.
88
+
89
+ **Stability Audit:**
90
+ - ✅ CLI commands and flags frozen (see [STABILITY.md](STABILITY.md))
91
+ - ✅ `.repolens.yml` schema v1 frozen with validation
92
+ - ✅ Plugin interface frozen (`register()` → renderers, publishers, hooks)
93
+ - ✅ Exit code contract: 0 success, 1 error, 2 validation failure
94
+ - ✅ Semantic versioning with breaking change guarantees
95
+
96
+ **Bug Fixes:**
97
+ - ✅ Doctor false-success: now exits code 2 on failure
98
+ - ✅ Feedback exit code: exits 1 on send failure
99
+ - ✅ Unknown flags no longer silently run publish
100
+ - ✅ `scan.ignore` security bypass fixed
101
+ - ✅ Domains type mismatch aligned across validators
102
+ - ✅ Plugin publisher errors caught instead of crashing pipeline
103
+
104
+ **Config Stability:**
105
+ - ✅ `configVersion: 1` now required
106
+ - ✅ Confluence config section validation added
107
+ - ✅ AI temperature range 0–2, max_tokens must be >0
108
+ - ✅ AI config YAML values used as fallback for env vars
109
+
110
+ **Improvements:**
111
+ - ✅ Standardized exit codes (`EXIT_SUCCESS`/`ERROR`/`VALIDATION`)
112
+ - ✅ `console.log`/`warn` replaced with logger in all prod code
113
+ - ✅ Sentry DSN moved to `REPOLENS_SENTRY_DSN` env var
114
+ - ✅ Default AI model migrated to `gpt-5-mini` (deprecated GPT-4 models removed)
115
+
116
+ ---
117
+
118
+ ## v1.2.0+ — Growth & Scale
119
+
120
+ ### Publishers
121
+ - [x] GitHub Wiki publisher (shipped v1.1.0)
122
+ - [ ] Obsidian vault publisher
123
+
124
+ ### Integrations
125
+ - [ ] VS Code extension for in-editor architecture visualization
126
+ - [ ] GitHub App for automated setup and status checks
127
+ - [ ] Slack notifications
128
+ - [ ] Custom webhook support
129
+
130
+ ### Analysis
131
+ - [ ] Cross-repository architecture analysis
132
+ - [ ] Monorepo-aware module detection
133
+ - [ ] Security boundary validation
134
+
135
+ ### Developer Experience
136
+ - [ ] Interactive HTML documentation output
137
+ - [ ] Architecture decision records (ADR) generation
138
+
139
+ ---
140
+
141
+ ## Feature Requests
142
+
143
+ Have a feature request? Open an issue on [GitHub](https://github.com/CHAPIBUNNY/repolens/issues) with the `enhancement` label.
144
+
145
+ ---
146
+
147
+ ## Contributing
148
+
149
+ RepoLens welcomes contributions. See the README for development setup instructions.
150
+
151
+ For questions or discussions, open a GitHub issue or contact the maintainers.