@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.
- package/CHANGELOG.md +14 -0
- package/README.md +18 -18
- package/docs/AI.md +329 -0
- package/docs/ARCHITECTURE.md +145 -0
- package/docs/CONFIGURATION.md +121 -0
- package/docs/DEVELOPMENT.md +79 -0
- package/docs/ENVIRONMENT.md +57 -0
- package/docs/INSTALLATION.md +45 -0
- package/docs/KNOWN_ISSUES.md +309 -0
- package/docs/MIGRATION.md +311 -0
- package/docs/ONBOARDING.md +382 -0
- package/docs/PRODUCTION_CHECKLIST.md +470 -0
- package/docs/ROADMAP.md +151 -0
- package/docs/STABILITY.md +265 -0
- package/docs/TELEMETRY.md +166 -0
- package/docs/TROUBLESHOOTING.md +377 -0
- package/package.json +3 -3
- package/src/cli.js +99 -41
- package/src/docs/generate-doc-set.js +15 -2
- package/src/publishers/confluence.js +37 -6
- package/src/publishers/notion.js +48 -0
- package/src/publishers/publish.js +36 -12
- /package/{RELEASE.md → docs/RELEASE.md} +0 -0
|
@@ -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.
|
package/docs/ROADMAP.md
ADDED
|
@@ -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.
|