Conversation
Captures the architecture, features, cross-cutting concerns, gotchas, and technical reference for dev-cli in a single self-contained document under codebase-analysis-docs/. Intended as onboarding material for AI agents and new contributors.
Single-file static site (web/index.html) styled in the Anthropic visual language: cream background, Claude-coral accent, serif headlines. Sections: hero with live-styled terminal demo, three-pillar value prop, six-command feature grid, dark safe-mode panel with a denied-command demo, stats row, ASCII architecture diagram, install + first-run code blocks with copy buttons, CTA band, footer. No build step. Preview with `open web/index.html`. Deployable as-is to GitHub Pages, Netlify, or any static host. Cross-links the existing codebase-analysis-docs/CODEBASE_KNOWLEDGE.md from the footer and CTA band, and updates that doc to point back at the landing page.
📝 WalkthroughWalkthroughThis PR introduces two independent documentation-and-web-assets initiatives for the dev-cli v0.1 release: a comprehensive codebase knowledge document for developers, and public-facing web landing page materials including an HTML page, README guide, and deployment instructions. ChangesDeveloper Codebase Knowledge
Web Landing Page & Release Materials
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds onboarding and product-communication artifacts to the dev-cli repo: a large “codebase knowledge” reference document for developers/agents and a static, no-build product landing page under web/.
Changes:
- Added
codebase-analysis-docs/CODEBASE_KNOWLEDGE.mdas a comprehensive architecture + feature reference anchored to repo paths. - Added
web/index.htmlas a single-file landing page with inline CSS/JS (copy-to-clipboard buttons, terminal demos, sections for features/safety/architecture/install). - Added
web/README.mdwith local preview + deployment guidance for the static site.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
web/README.md |
Documents how to preview/deploy the static landing page and what to keep in sync. |
web/index.html |
Implements the static landing page UI, navigation, and clipboard-copy behavior. |
codebase-analysis-docs/CODEBASE_KNOWLEDGE.md |
Adds a detailed internal reference mapping features to architecture, flow, and code locations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <a class="btn btn-primary" href="https://github.com/opx0/dev-cli"> | ||
| <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.21 11.39.6.11.82-.26.82-.58v-2.17c-3.34.73-4.04-1.42-4.04-1.42-.55-1.39-1.34-1.76-1.34-1.76-1.09-.74.08-.73.08-.73 1.21.09 1.85 1.24 1.85 1.24 1.07 1.84 2.81 1.31 3.5 1 .11-.78.42-1.31.76-1.61-2.66-.3-5.47-1.33-5.47-5.92 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.11-3.18 0 0 1.01-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.25 2.88.12 3.18.77.84 1.24 1.91 1.24 3.22 0 4.6-2.81 5.62-5.49 5.91.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.83.58A12 12 0 0 0 24 12c0-6.63-5.37-12-12-12z"/></svg> | ||
| Star on GitHub | ||
| </a> | ||
| <a class="btn btn-ghost" href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md">Read the architecture doc</a> | ||
| </div> |
| <a href="../docs/MODELS.md">Models</a> | ||
| <a href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md">Architecture</a> |
| function copyToClipboard(btn) { | ||
| const card = btn.parentElement; | ||
| const text = card.querySelector('pre').innerText; | ||
| navigator.clipboard.writeText(text).then(() => { | ||
| const old = btn.innerText; | ||
| btn.innerText = "copied"; | ||
| setTimeout(() => { btn.innerText = old; }, 1200); | ||
| }); |
| text-rendering: optimizeLegibility; | ||
| } | ||
| a { color: var(--ink); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .15s ease; } | ||
| a:hover { border-bottom-color: var(--ink); } |
| ```bash | ||
| # any of these work — no build step required | ||
| open web/index.html | ||
| xdg-open web/index.html | ||
| python3 -m http.server -d web 8080 # then http://localhost:8080 | ||
| ``` |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (5)
codebase-analysis-docs/CODEBASE_KNOWLEDGE.md (3)
59-79: ⚡ Quick winAdd language specifier to fenced code block.
The code block lacks a language identifier. Adding
textorplaintextwill improve rendering and satisfy linting rules.📝 Proposed fix
-``` +```text cmd/ ← presentation: Cobra subcommands, output, prompts └─ depends on internal/{llm, tools, workflow, storage, config, …}As per coding guidelines, markdownlint recommends specifying a language for all fenced code blocks.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@codebase-analysis-docs/CODEBASE_KNOWLEDGE.md` around lines 59 - 79, The fenced code block in CODEBASE_KNOWLEDGE.md is missing a language tag; update the opening fence so it declares a language such as "text" or "plaintext" (e.g., change ``` to ```text) for the block showing the repo layout (lines containing "cmd/" and the various "internal/..." entries) so markdownlint renders it correctly and the linter passes.
256-259: ⚡ Quick winAdd language specifier to fenced code block.
The precedence diagram code block should specify a language identifier for proper rendering.
📝 Proposed fix
-``` +```text defaults < YAML file (~/.devlogs/config.yaml) < environment variablesAs per coding guidelines, markdownlint recommends specifying a language for all fenced code blocks.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@codebase-analysis-docs/CODEBASE_KNOWLEDGE.md` around lines 256 - 259, The fenced code block in CODEBASE_KNOWLEDGE.md containing "defaults < YAML file (~/.devlogs/config.yaml) < environment variables" lacks a language specifier; update that fenced block to include a language identifier (e.g., text) after the opening backticks so Markdown renders it properly and satisfies markdownlint.
868-922: ⚡ Quick winAdd language specifier to fenced code block.
The file map code block should specify a language identifier for proper rendering.
📝 Proposed fix
-``` +```text P0 (entry points / load-bearing) main.go CLI entry → cmd.ExecuteAs per coding guidelines, markdownlint recommends specifying a language for all fenced code blocks.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@codebase-analysis-docs/CODEBASE_KNOWLEDGE.md` around lines 868 - 922, The fenced code block in CODEBASE_KNOWLEDGE.md (the multi-line file map block starting with "P0 (entry points / load-bearing)") lacks a language specifier; update the opening fence to include a language identifier (e.g., change ``` to ```text) so the block renders correctly and satisfies markdownlint rules.web/index.html (2)
639-640: ⚡ Quick winRelative links will break when deployed standalone.
The footer links to
../docs/MODELS.mdand../codebase-analysis-docs/CODEBASE_KNOWLEDGE.mdassume the full repository structure. When the landing page is deployed to a static host serving only theweb/directory (as described inweb/README.md), these links will return 404.Consider using absolute GitHub URLs for these documentation links:
🔗 Proposed fix
- <a href="../docs/MODELS.md">Models</a> - <a href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md">Architecture</a> + <a href="https://github.com/opx0/dev-cli/blob/main/docs/MODELS.md">Models</a> + <a href="https://github.com/opx0/dev-cli/blob/main/codebase-analysis-docs/CODEBASE_KNOWLEDGE.md">Architecture</a>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@web/index.html` around lines 639 - 640, The footer contains two relative anchor hrefs ("Models" pointing to "../docs/MODELS.md" and "Architecture" pointing to "../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md") which will 404 when the site is served from the web/ directory; update the href attributes on those "Models" and "Architecture" anchor elements in web/index.html to use absolute GitHub URLs (or other canonical absolute URLs) that point to the repository's docs (e.g. the blob/raw URLs on github.com) so the links resolve when deployed standalone.
645-654: ⚡ Quick winAdd error handling to clipboard API.
The
copyToClipboardfunction uses the Clipboard API without error handling. The Clipboard API requires a secure context (HTTPS or localhost) and may fail if permissions are denied or the API is unsupported.🛡️ Proposed fix
function copyToClipboard(btn) { const card = btn.parentElement; const text = card.querySelector('pre').innerText; - navigator.clipboard.writeText(text).then(() => { + navigator.clipboard.writeText(text).then(() => { const old = btn.innerText; btn.innerText = "copied"; setTimeout(() => { btn.innerText = old; }, 1200); + }).catch(err => { + console.error('Failed to copy:', err); + btn.innerText = "failed"; + setTimeout(() => { btn.innerText = "copy"; }, 1200); }); }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@web/index.html` around lines 645 - 654, The copyToClipboard function currently calls navigator.clipboard.writeText without feature detection or error handling; update copyToClipboard to first check for navigator.clipboard and navigator.clipboard.writeText, wrap the writeText call in a promise chain (or async/try-catch) to catch rejections, and handle failures by restoring the button text to a failure state (e.g., "failed") and optionally reverting after a timeout; if the Clipboard API is unavailable, implement a fallback (temporary textarea + document.execCommand('copy')) and also handle errors from that path, referencing the copyToClipboard function and navigator.clipboard.writeText so changes are easy to locate.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@web/index.html`:
- Line 621: The relative link in the anchor element with class "btn btn-ghost"
(href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md" in web/index.html) can
break when only the web/ directory is deployed; update the href to an absolute
GitHub URL for the file (e.g.,
https://github.com/<org>/<repo>/blob/main/codebase-analysis-docs/CODEBASE_KNOWLEDGE.md)
or, alternatively, add a note in web/README.md instructing deployers to copy or
symlink CODEBASE_KNOWLEDGE.md into the web directory so the relative path
remains valid.
---
Nitpick comments:
In `@codebase-analysis-docs/CODEBASE_KNOWLEDGE.md`:
- Around line 59-79: The fenced code block in CODEBASE_KNOWLEDGE.md is missing a
language tag; update the opening fence so it declares a language such as "text"
or "plaintext" (e.g., change ``` to ```text) for the block showing the repo
layout (lines containing "cmd/" and the various "internal/..." entries) so
markdownlint renders it correctly and the linter passes.
- Around line 256-259: The fenced code block in CODEBASE_KNOWLEDGE.md containing
"defaults < YAML file (~/.devlogs/config.yaml) < environment variables"
lacks a language specifier; update that fenced block to include a language
identifier (e.g., text) after the opening backticks so Markdown renders it
properly and satisfies markdownlint.
- Around line 868-922: The fenced code block in CODEBASE_KNOWLEDGE.md (the
multi-line file map block starting with "P0 (entry points / load-bearing)")
lacks a language specifier; update the opening fence to include a language
identifier (e.g., change ``` to ```text) so the block renders correctly and
satisfies markdownlint rules.
In `@web/index.html`:
- Around line 639-640: The footer contains two relative anchor hrefs ("Models"
pointing to "../docs/MODELS.md" and "Architecture" pointing to
"../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md") which will 404 when the site
is served from the web/ directory; update the href attributes on those "Models"
and "Architecture" anchor elements in web/index.html to use absolute GitHub URLs
(or other canonical absolute URLs) that point to the repository's docs (e.g. the
blob/raw URLs on github.com) so the links resolve when deployed standalone.
- Around line 645-654: The copyToClipboard function currently calls
navigator.clipboard.writeText without feature detection or error handling;
update copyToClipboard to first check for navigator.clipboard and
navigator.clipboard.writeText, wrap the writeText call in a promise chain (or
async/try-catch) to catch rejections, and handle failures by restoring the
button text to a failure state (e.g., "failed") and optionally reverting after a
timeout; if the Clipboard API is unavailable, implement a fallback (temporary
textarea + document.execCommand('copy')) and also handle errors from that path,
referencing the copyToClipboard function and navigator.clipboard.writeText so
changes are easy to locate.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 761d5726-ee90-44d8-9060-99876a2cd334
📒 Files selected for processing (3)
codebase-analysis-docs/CODEBASE_KNOWLEDGE.mdweb/README.mdweb/index.html
| <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.21 11.39.6.11.82-.26.82-.58v-2.17c-3.34.73-4.04-1.42-4.04-1.42-.55-1.39-1.34-1.76-1.34-1.76-1.09-.74.08-.73.08-.73 1.21.09 1.85 1.24 1.85 1.24 1.07 1.84 2.81 1.31 3.5 1 .11-.78.42-1.31.76-1.61-2.66-.3-5.47-1.33-5.47-5.92 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.11-3.18 0 0 1.01-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.25 2.88.12 3.18.77.84 1.24 1.91 1.24 3.22 0 4.6-2.81 5.62-5.49 5.91.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.83.58A12 12 0 0 0 24 12c0-6.63-5.37-12-12-12z"/></svg> | ||
| Star on GitHub | ||
| </a> | ||
| <a class="btn btn-ghost" href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md">Read the architecture doc</a> |
There was a problem hiding this comment.
Verify the relative path to CODEBASE_KNOWLEDGE.md.
The link uses ../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md, which assumes the repository structure places web/ and codebase-analysis-docs/ as siblings at the repository root. This is correct based on the PR file structure, but when deployed to a static host (e.g., GitHub Pages serving only the web/ directory), this link will break.
Consider one of these approaches:
- Document in
web/README.mdthat deployers should copy or link the knowledge doc into the web directory - Use an absolute GitHub URL instead:
https://github.com/opx0/dev-cli/blob/main/codebase-analysis-docs/CODEBASE_KNOWLEDGE.md - Accept that this link only works when the full repository is served
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/index.html` at line 621, The relative link in the anchor element with
class "btn btn-ghost" (href="../codebase-analysis-docs/CODEBASE_KNOWLEDGE.md" in
web/index.html) can break when only the web/ directory is deployed; update the
href to an absolute GitHub URL for the file (e.g.,
https://github.com/<org>/<repo>/blob/main/codebase-analysis-docs/CODEBASE_KNOWLEDGE.md)
or, alternatively, add a note in web/README.md instructing deployers to copy or
symlink CODEBASE_KNOWLEDGE.md into the web directory so the relative path
remains valid.
Summary
This PR adds two companion artifacts to support onboarding and product communication:
codebase-analysis-docs/CODEBASE_KNOWLEDGE.md— A 950+ line self-contained reference document for AI agents and developers working ondev-cli. It maps every feature to its business purpose, documents the system architecture, control flow, cross-feature interactions, and edge cases.web/index.html+web/README.md— A static product-release landing page with Anthropic-inspired design, featuring hero section, feature cards, safety guarantees, architecture diagram, install instructions, and deployment guidance.Key Changes
Codebase Knowledge Document (
CODEBASE_KNOWLEDGE.md)fix(autonomous agent with runbook replay)explain(root-cause analysis with 50+ pattern DB)ask(cheat sheets + research with web-search routing)ui(bubbletea TUI dashboard)doctor(system health checks)models,init,memory,runbook,commit,pr,review,gen,test,config,export,mark-resolved,log-event,versionProduct Landing Page (
web/index.html)dev-cli fixfix,explain,ask,ui,doctor,runbook)Deployment Guide (
web/README.md)Notable Implementation Details
cmd/fix.go:33-64,internal/llm/agent.go:153-209) so claims are verifiable against the actual codebase<span>elements for syntax highlightinghttps://claude.ai/code/session_01KHMmnqN4Rfeo5cMihgpnYt
Summary by CodeRabbit
New Features
Documentation