{"id":35788156,"url":"https://github.com/ndycode/redpen","last_synced_at":"2026-02-04T19:00:30.418Z","repository":{"id":331470718,"uuid":"1126769194","full_name":"ndycode/redpen","owner":"ndycode","description":"Code review checklist for AI-generated code. Step through prompts, paste into your AI, fix issues, mark done. Progress saves per git branch.","archived":false,"fork":false,"pushed_at":"2026-01-20T21:44:17.000Z","size":288,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-21T07:14:43.708Z","etag":null,"topics":["ai","audit","cli","code-review","developer-tools","prompts"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ndycode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-02T14:45:30.000Z","updated_at":"2026-01-20T21:44:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ndycode/redpen","commit_stats":null,"previous_names":["ndycode/redpen"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ndycode/redpen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndycode%2Fredpen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndycode%2Fredpen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndycode%2Fredpen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndycode%2Fredpen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ndycode","download_url":"https://codeload.github.com/ndycode/redpen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndycode%2Fredpen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29092981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","audit","cli","code-review","developer-tools","prompts"],"created_at":"2026-01-07T07:22:29.613Z","updated_at":"2026-02-04T19:00:30.412Z","avatar_url":"https://github.com/ndycode.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/redpen.svg?style=flat-square\u0026color=e34671\" alt=\"npm version\"\u003e \u003cimg src=\"https://img.shields.io/npm/dm/redpen.svg?style=flat-square\" alt=\"downloads\"\u003e \u003cimg src=\"https://img.shields.io/github/stars/ndycode/redpen.svg?style=flat-square\" alt=\"stars\"\u003e \u003cimg src=\"https://img.shields.io/github/license/ndycode/redpen.svg?style=flat-square\" alt=\"license\"\u003e\u003c/p\u003e\n\n# redpen\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"assets/tui.png\" width=\"700\"\u003e\u003c/p\u003e\n\nCode review checklist for AI-generated code. Step through prompts, paste into your AI, fix issues, mark done.\n\n## Overview\n\nredpen is a CLI tool that guides you through a set of code review prompts. Each prompt tells an AI what to look for in your codebase. You copy the prompt, paste it into ChatGPT/Claude/Cursor, fix what it finds, then mark it done. Progress saves per git branch.\n\n## Features\n\n- **Interactive TUI**: Arrow keys to navigate, single-key actions\n- **First-Run Setup**: Auto-detects your stack, guided init wizard\n- **Fuzzy Search**: Press `/` to quickly find prompts\n- **Progress Tracking**: Saves per git branch in user directory (keeps project clean)\n- **Stack-Aware**: Loads prompts for your specific stack (Next.js, Supabase, Flutter, etc.)\n- **Custom Prompts**: Add your own prompts in `.redpen/` folder\n- **CI Integration**: Fail builds if prompts incomplete\n\n## Installation\n\n```bash\nnpm install -g redpen\n```\n\n## Usage\n\n```bash\n# Start the TUI (runs init wizard on first use)\nredpen\n\n# Or explicitly run setup\nredpen init\n```\n\n### Keyboard Shortcuts\n\n| Key | Action |\n|-----|--------|\n| `r` / `Enter` | **Run**: copy + mark done + advance |\n| `c` | Copy only (no mark done) |\n| `s` | Skip prompt + advance |\n| `n` | Jump to next incomplete |\n| `d` | Toggle done / undo |\n| `/` | Search prompts (fuzzy) |\n| `?` | Help overlay |\n| `←` `→` `h` `l` | Previous / next prompt |\n| `↑` `↓` `k` `j` | Previous / next prompt |\n| `Home` `End` | First / last prompt |\n| `q` / `Esc` | Quit |\n\n### Search Mode (`/`)\n\n- Type to fuzzy filter prompts\n- `↑` `↓` to navigate results  \n- `Enter` to select\n- `Esc` to cancel\n\n## How It Works\n\n1. Run `redpen` - TUI opens at first incomplete prompt\n2. Press `r` - copies prompt, marks done, advances to next\n3. Paste into your AI - it reviews your code\n4. Fix what it finds\n5. Repeat until complete\n\n**One key does it all** - no more `r` then `d` then arrow key.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `redpen` | Interactive TUI (recommended) |\n| `redpen init` | First-time setup |\n| `redpen next` | Show next prompt |\n| `redpen copy [n]` | Copy prompt n |\n| `redpen done [n]` | Mark prompt n complete |\n| `redpen skip [n]` | Skip prompt n |\n| `redpen undo` | Undo last done |\n| `redpen status` | Show progress |\n| `redpen list` | List all prompts |\n| `redpen order [tag]` | Show run order |\n| `redpen reset` | Clear progress |\n| `redpen check [cats]` | CI mode - exit 1 if incomplete |\n| `redpen report` | Markdown summary |\n| `redpen verify` | Validate prompt standard |\n\n## Prompts\n\n### Core (always loaded)\n\n| Category | What it checks |\n|----------|----------------|\n| `core/security/*` | Auth, data safety, access control |\n| `core/quality/*` | Test coverage, error handling |\n| `core/architecture/*` | Logging, monitoring, observability |\n| `core/process/*` | Documentation, code standards |\n\n### Stack-Specific (based on config)\n\n| Stack | Prompts |\n|-------|---------|\n| Next.js | `web/frontend/nextjs/*` |\n| React | `web/frontend/react/*` |\n| Vue | `web/frontend/vue/*` |\n| Supabase | `web/backend/supabase/*` |\n| Firebase | `web/backend/firebase/*` |\n| Prisma | `web/backend/prisma/*` |\n| Flutter | `mobile/flutter/*` |\n| React Native | `mobile/react-native/*` |\n| Native iOS/Android | `mobile/native/*` |\n\n## Custom Prompts\n\nAdd `.txt` files to `.redpen/` in your project root:\n\n```\nyour-project/\n  .redpen/\n    my-custom-check.txt\n    team/coding-standards.txt\n```\n\nThey get added to the run order automatically.\n\n## CI Integration\n\n```yaml\n# GitHub Actions\n- run: npx redpen check security,quality\n```\n\nExits with code 1 if security or quality prompts are incomplete.\n\n## Configuration\n\nRun `redpen init` or just run `redpen` - the TUI will guide you through setup on first use.\n\nConfig and progress are stored in your user directory (not in the project):\n\n| Platform | Location |\n|----------|----------|\n| **Linux** | `~/.config/redpen/projects/\u003chash\u003e/` |\n| **macOS** | `~/Library/Application Support/redpen/projects/\u003chash\u003e/` |\n| **Windows** | `%APPDATA%\\redpen\\projects\\\u003chash\u003e\\` |\n\nEach project gets its own folder (identified by git remote URL hash). Inside:\n\n```\nconfig.json           # Your stack settings\nprogress-main.json    # Progress for 'main' branch\nprogress-feature.json # Progress for 'feature' branch\n```\n\nExample `config.json`:\n\n```json\n{\n  \"platform\": \"web\",\n  \"frontend\": \"nextjs\",\n  \"backend\": \"supabase\"\n}\n```\n\nFor mobile:\n\n```json\n{\n  \"platform\": \"mobile\",\n  \"framework\": \"flutter\"\n}\n```\n\nRun `redpen doctor` to see where your config is stored.\n\n## Auto-Detection\n\nredpen automatically detects your stack from:\n\n| File | Detection |\n|------|-----------|\n| `pubspec.yaml` | Flutter |\n| `react-native` in package.json | React Native |\n| `next` in package.json | Next.js |\n| `@supabase/supabase-js` | Supabase |\n| `firebase` | Firebase |\n| `@prisma/client` | Prisma |\n\nDetected values are pre-selected in the init wizard.\n\n## Shell Completion\n\n```bash\n# Add to your shell profile\neval \"$(redpen completion)\"\n```\n\n## Development\n\nRelease (maintainers):\n\n```bash\n# Generate notes from template\nnode scripts/release.mjs \u003cversion\u003e\n\n# Or provide explicit notes\nnode scripts/release.mjs \u003cversion\u003e --notes path/to/notes.md\n```\n\n## Why This Exists\n\nAI writes code that compiles and looks correct. But it misses things: security holes, missing error handling, edge cases, no tests, production gotchas.\n\nThese prompts catch what AI misses. Run them before you ship.\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndycode%2Fredpen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndycode%2Fredpen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndycode%2Fredpen/lists"}