Skip to content

Commit c5fc561

Browse files
authored
Merge pull request #41 from wai-coding/dev
docs: rewrite README with deploy link and AI-assisted development section
2 parents b53c3a3 + 753c257 commit c5fc561

8 files changed

Lines changed: 192 additions & 434 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## v8 — Post-Deploy Polish and AI-Assisted Development
4+
5+
- Rewrote README with live demo link, architecture overview, and AI-assisted development section
6+
- Improved milestone summary generator with concrete bullet templates and stronger vague-phrase filtering
7+
- Fixed next milestone suggestions to exclude already-shipped features like web app deployment
8+
- Optimized browser bundle by separating React into its own vendor chunk alongside the existing analysis-engine chunk
9+
- Updated documentation across architecture, worklog, and code walkthrough for deploy-readiness consistency
10+
311
## v7 — Deploy Polish and Browser Separation
412

513
- Improved browser bundle architecture with a separate browser-safe entry point and lazy-loaded analysis engine

README.md

Lines changed: 94 additions & 405 deletions
Large diffs are not rendered by default.

ai/project-context.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
# InspectoRepo – Project Context
22

3-
InspectoRepo is a local developer tool that analyzes TypeScript and React codebases and generates structured code review suggestions.
3+
InspectoRepo is a TypeScript code analysis tool that runs entirely in the browser. It analyzes TypeScript and React codebases and generates structured code review suggestions with proposed fixes.
4+
5+
Live demo: https://inspectorepo.vercel.app
46

57
Primary goals:
68

79
- recruiter-impressive portfolio project
810
- demonstrate TypeScript AST analysis
911
- professional VSCode-like UI
1012
- export clean markdown reports
13+
- explore AI-assisted development workflows
1114

1215
Tech stack:
1316
Frontend: React + TypeScript + Vite
1417
Analysis engine: ts-morph
1518
Testing: Vitest
19+
Deploy: Vercel
1620

1721
Target users:
1822

@@ -21,6 +25,7 @@ Target users:
2125

2226
Constraints:
2327

24-
- must run locally
28+
- runs in the browser — no server-side processing
2529
- no paid APIs
2630
- deterministic analysis
31+
- all code stays client-side

ai/scripts/generate-repomix-exports.ts

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -149,18 +149,18 @@ function categorizeFiles(files: string[]): Map<string, string[]> {
149149

150150
// Polished, outcome-focused bullet templates per area (≥8 words, verb-first, complete sentences)
151151
const AREA_BULLET_TEMPLATES: Record<string, string> = {
152-
core: 'Expanded rule coverage with stronger detection accuracy and richer diagnostics.',
153-
cli: 'Enhanced the command-line interface for a smoother developer experience.',
154-
shared: 'Refined shared type definitions to improve cross-package type safety.',
155-
'vscode-extension': 'Improved the VS Code extension for faster in-editor feedback.',
156-
web: 'Polished the web interface for a more intuitive analysis workflow.',
157-
docs: 'Updated documentation to reflect the latest codebase improvements and conventions.',
158-
ai: 'Strengthened the export workflow so summaries are cleaner and more reliable.',
159-
workflow: 'Improved the CI pipeline to catch more issues before code ships.',
160-
examples: 'Updated example fixtures to demonstrate current rule coverage and patterns.',
161-
screenshots: 'Refreshed screenshots and demo automation for accurate visual documentation.',
162-
root: 'Aligned root project configuration with the current Node and TypeScript targets.',
163-
other: 'Tightened build and lint settings to reduce drift across packages.',
152+
core: 'Introduced a browser-safe entry point to prevent heavy analysis dependencies from entering the web bundle.',
153+
cli: 'Strengthened the command-line fixer with detailed skip reporting and preview output.',
154+
shared: 'Refined shared type definitions to eliminate redundant casts across packages.',
155+
'vscode-extension': 'Improved the VS Code extension to auto-open reports after analysis completes.',
156+
web: 'Improved the onboarding experience with clearer sample-project entry points and browser detection.',
157+
docs: 'Clarified architecture documentation to reflect the browser-safe import separation.',
158+
ai: 'Hardened the milestone summary generator with stricter bullet validation and vague-phrase rejection.',
159+
workflow: 'Added automated InspectoRepo analysis as a GitHub Actions check on every pull request.',
160+
examples: 'Expanded fixture files to trigger all fourteen implemented analysis rules.',
161+
screenshots: 'Automated screenshot capture with Playwright for consistent visual documentation.',
162+
root: 'Pinned the Node.js engine version to stabilize Vercel deployments.',
163+
other: 'Strengthened rule-system validation tests to prevent configuration drift.',
164164
};
165165

166166
// Banned patterns — bullets containing any of these are considered noisy/internal
@@ -285,13 +285,21 @@ function formatGroupedFiles(files: string[]): string {
285285

286286
// Vague phrases that are banned from Human Summary bullets
287287
const VAGUE_BANNED_PHRASES: RegExp[] = [
288-
/overall developer workflow configuration quality/i,
288+
/overall developer workflow/i,
289+
/configuration quality/i,
289290
/workspace consistency/i,
290291
/project tooling(?! \w)/i,
291292
/general improvements/i,
292293
/various fixes/i,
293294
/miscellaneous updates/i,
294295
/minor tweaks/i,
296+
/code quality improvements/i,
297+
/overall improvements/i,
298+
/developer experience improvements/i,
299+
/codebase improvements/i,
300+
/several enhancements/i,
301+
/multiple updates/i,
302+
/routine maintenance/i,
295303
];
296304

297305
/** Check whether a bullet meets quality standards for human-readable output. */
@@ -325,7 +333,7 @@ function hasWebChanges(files: string[]): boolean {
325333
return files.some(f => f.startsWith('apps/web/'));
326334
}
327335

328-
const DEPLOY_READINESS_BULLET = 'Improved deploy readiness in the web application with clearer onboarding and browser capability detection.'
336+
const DEPLOY_READINESS_BULLET = 'Polished the web application for public deployment with privacy-safe in-browser analysis and clearer onboarding.';
329337

330338
/** Validate that all bullets pass quality rules. Returns list of failing bullets. */
331339
function validateBullets(bullets: string[]): string[] {
@@ -413,9 +421,9 @@ function generateHumanSummary(pr: PRInfo, files: string[], _commits: string): st
413421
bullets = buildAreaBullets(files);
414422
// Always ensure at least 3
415423
const fallbacks = [
416-
'Strengthened the export workflow so summaries are cleaner and more reliable.',
417-
'Updated documentation to reflect the latest codebase improvements and conventions.',
418-
'Improved developer feedback with clearer diagnostics and auto-fix reporting.',
424+
'Hardened the milestone summary generator with stricter bullet validation and vague-phrase rejection.',
425+
'Clarified architecture documentation to reflect the browser-safe import separation.',
426+
'Strengthened rule-system validation tests to prevent configuration drift.',
419427
];
420428
for (const fb of fallbacks) {
421429
if (bullets.length >= 3) break;
@@ -580,9 +588,11 @@ const ROADMAP: RoadmapItem[] = [
580588
{ label: 'Richer complexity warnings with contributor breakdown', implemented: true },
581589
{ label: 'Conservative analysis rules (no-debugger, no-empty-catch, no-useless-return, ts-diagnostics)', implemented: true },
582590
{ label: 'Additional conservative rules (no-console, no-empty-function, duplicate-imports, no-unreachable-after-return, no-throw-literal)', implemented: true },
583-
{ label: 'Deploy web app as a hosted service', implemented: false },
584-
{ label: 'Rule dependency graph and cascade analysis', implemented: false },
585-
{ label: 'Performance profiling for large codebases', implemented: false },
591+
{ label: 'Deploy web app as a hosted service', implemented: true },
592+
{ label: 'Additional safe rules for common anti-patterns like magic numbers and nested callbacks', implemented: false },
593+
{ label: 'Deeper analysis diagnostics with cross-file dependency tracking', implemented: false },
594+
{ label: 'Performance profiling and optimization for large monorepo codebases', implemented: false },
595+
{ label: 'Optional server-side analysis endpoint for CI integration without Node dependencies', implemented: false },
586596
{ label: 'VS Code extension inline fix suggestions', implemented: false },
587597
];
588598

@@ -594,8 +604,8 @@ function generateNextMilestoneSection(): string {
594604
const items = unique.slice(0, 4);
595605
if (items.length < 2) {
596606
// Safety fallback — should never happen if ROADMAP is maintained
597-
items.push('Explore additional static analysis rules');
598-
items.push('Performance profiling for large codebases');
607+
items.push('Additional safe rules for common anti-patterns');
608+
items.push('Performance profiling for large monorepo codebases');
599609
}
600610

601611
return items.map(i => `- ${i}`).join('\n');
@@ -685,9 +695,9 @@ if (bulletErrors.length > 0) {
685695
humanBullets = buildAreaBullets(milestoneFiles);
686696
// Ensure 3–5 range
687697
const fallbacks = [
688-
'Strengthened the export workflow so summaries are cleaner and more reliable.',
689-
'Updated documentation to reflect the latest codebase improvements and conventions.',
690-
'Improved developer feedback with clearer diagnostics and auto-fix reporting.',
698+
'Hardened the milestone summary generator with stricter bullet validation and vague-phrase rejection.',
699+
'Clarified architecture documentation to reflect the browser-safe import separation.',
700+
'Strengthened rule-system validation tests to prevent configuration drift.',
691701
];
692702
for (const fb of fallbacks) {
693703
if (humanBullets.length >= 3) break;

apps/web/vite.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export default defineConfig({
88
rollupOptions: {
99
output: {
1010
manualChunks: {
11+
'react-vendor': ['react', 'react-dom'],
1112
'analysis-engine': ['@inspectorepo/core', 'ts-morph'],
1213
},
1314
},

docs/agent-worklog.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,37 @@ Development log for InspectoRepo. Each entry describes what was implemented, why
44

55
---
66

7+
## 2026-03-12 — V8: Post-Deploy Polish and AI-Assisted Development
8+
9+
### What was implemented
10+
11+
- **README rewrite** — replaced the original feature-list README with a recruiter-friendly version including: live demo link (https://inspectorepo.vercel.app), architecture overview, browser-safe bundle strategy, AI-assisted development section, and streamlined rules/CLI/configuration reference.
12+
- **Milestone summary generator improvements** — replaced vague area bullet templates with concrete, specific wording (e.g. "Introduced a browser-safe entry point to prevent heavy analysis dependencies from entering the web bundle"). Added 8 new vague-phrase bans including "code quality improvements", "overall improvements", and "developer experience improvements".
13+
- **Next milestone generator fix** — marked "Deploy web app as a hosted service" as implemented in the ROADMAP array. Replaced it with realistic future milestones: additional safe rules, deeper analysis diagnostics, performance optimization, and optional server-side analysis.
14+
- **Bundle optimization** — added `react-vendor` manual chunk to Vite config, separating React/ReactDOM from the main bundle for better caching alongside the existing `analysis-engine` chunk.
15+
- **Documentation consistency** — updated CHANGELOG, architecture docs, code walkthrough, and agent worklog to reflect deploy-readiness, browser-safe architecture, and AI-assisted development workflow.
16+
17+
### Why
18+
19+
After the first successful public deploy to Vercel, the README and documentation still described InspectoRepo as a local-only tool. The milestone summary generator produced vague bullets that wouldn't impress recruiters. The next milestone section incorrectly suggested deploying the web app — which was already done.
20+
21+
### How to verify
22+
23+
```bash
24+
npm run lint
25+
npm run typecheck
26+
npm run build
27+
npm test
28+
```
29+
30+
### Design decisions
31+
32+
- **README structure follows recruiter scanning patterns** — Live Demo near the top, Key Features as a scannable list, Architecture as a clear diagram. Technical details (CLI, configuration) come later.
33+
- **AI-assisted development section uses professional tone** — describes the workflow factually without hype, acknowledging both AI strengths and the need for human oversight.
34+
- **Concrete bullet templates** — each area template now describes a specific architectural improvement rather than a generic "improved X for better Y" pattern.
35+
36+
---
37+
738
## 2026-03-11 — V7: Deploy Polish and Browser Separation
839

940
### What was implemented

docs/architecture-and-rules.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,26 @@ packages/core/src/
1515
├── analyzer.ts # analyzeCodebase() — main pipeline entry point
1616
├── scoring.ts # computeScore(issues) → { score, bySeverity }
1717
├── report.ts # buildMarkdownReport(AnalysisReport) → string
18+
├── report-parser.ts # parseReportSummary(markdown) → ReportSummary
19+
├── custom-rule.ts # defineRule() — custom rule authoring API
20+
├── presets.ts # Rule preset system (recommended, strict, cleanup, react)
1821
├── rule.ts # Rule interface definition
1922
└── rules/
20-
├── index.ts # Registry: allRules array
23+
├── index.ts # Registry: allRules array (14 rules)
2124
├── unused-imports.ts
2225
├── complexity-hotspot.ts
2326
├── optional-chaining.ts
2427
├── boolean-simplification.ts
25-
└── early-return.ts
28+
├── early-return.ts
29+
├── no-debugger.ts
30+
├── no-empty-catch.ts
31+
├── no-useless-return.ts
32+
├── ts-diagnostics.ts
33+
├── no-console.ts
34+
├── no-empty-function.ts
35+
├── duplicate-imports.ts
36+
├── no-unreachable-after-return.ts
37+
└── no-throw-literal.ts
2638
```
2739

2840
### Key decisions

docs/code-walkthrough.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
A guided tour of the InspectoRepo codebase. Organized by package and file, with short explanations and snippets.
44

5+
The web app is deployed at https://inspectorepo.vercel.app and runs entirely in the browser. The analysis engine (ts-morph) is lazy-loaded to keep the initial page load fast. This project was built using AI-assisted development with GitHub Copilot agents inside VS Code.
6+
57
---
68

79
## Root Configuration

0 commit comments

Comments
 (0)