Skip to content

Commit 6069a03

Browse files
committed
📝 Add comprehensive VitePress documentation site
Introduce a complete documentation portal built with VitePress, featuring the SilkCircuit Neon design language. The site provides extensive coverage of all Git-Iris capabilities: - Getting started guides with installation and quick start - User guide for commits, reviews, PRs, changelogs, and release notes - Iris Studio documentation covering all six modes and chat - Configuration reference for providers, models, and environment - Architecture deep dives into the agent system, tools, and capabilities - Theme system documentation with token reference and gallery - Extension guides for adding capabilities, tools, and modes - CLI and keybinding reference with troubleshooting tips Update CLAUDE.md with testing conventions (tests in separate files) and cross-references to the new architecture docs. Update README.md to link to the documentation directory.
1 parent bc4ae63 commit 6069a03

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+26869
-3
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ todo
2424
.aider*
2525

2626
*.log
27+
28+
# docs
29+
node_modules
30+
docs/.vitepress/cache/
31+
docs/.vitepress/dist/
32+

CLAUDE.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Git-Iris Developer Guide
22

3+
> **Note:** This is a quick-reference guide for AI assistants. For comprehensive documentation, see:
4+
> - **[Architecture Documentation](/docs/architecture/)** — System design, patterns, and data flow
5+
> - **[Theme System Documentation](/docs/themes/)** — SilkCircuit design language and theming
6+
> - **[Studio Internals](/docs/studio-internals/)** — Deep dive into TUI implementation
7+
> - **[Extension Guide](/docs/extending/)** — Creating new capabilities, tools, and modes
8+
39
## Architecture Overview
410

511
Git-Iris uses an agent-first architecture powered by **Iris**, an LLM-driven agent built on the [Rig framework](https://docs.rs/rig-core). Iris dynamically explores codebases using tool calls rather than dumping all context upfront.
@@ -310,6 +316,58 @@ RUST_LOG=debug cargo run -- gen # Verbose logging
310316
cargo fmt
311317
```
312318

319+
## Testing Conventions
320+
321+
**Tests go in separate files, not inline with source code.**
322+
323+
### Directory Structure
324+
325+
```
326+
src/
327+
├── module/
328+
│ ├── mod.rs # Module code (NO #[cfg(test)] mod tests inline)
329+
│ ├── submodule.rs # Submodule code
330+
│ └── tests/ # Test directory
331+
│ ├── mod.rs # Declares test modules
332+
│ ├── module_tests.rs
333+
│ └── submodule_tests.rs
334+
```
335+
336+
### Pattern
337+
338+
1. Create a `tests/` subdirectory within the module
339+
2. Add `#[cfg(test)] mod tests;` at the bottom of `mod.rs`
340+
3. Create `tests/mod.rs` to declare test submodules
341+
4. Write tests in separate files (e.g., `tests/feature_tests.rs`)
342+
343+
### Example
344+
345+
```rust
346+
// src/theme/mod.rs (at the end)
347+
#[cfg(test)]
348+
mod tests;
349+
350+
// src/theme/tests/mod.rs
351+
mod theme_tests;
352+
mod builtins_tests;
353+
354+
// src/theme/tests/theme_tests.rs
355+
use crate::theme::{current, set_theme, Theme};
356+
357+
#[test]
358+
fn test_current_returns_theme() {
359+
let theme = current();
360+
assert_eq!(theme.meta.name, "SilkCircuit Neon");
361+
}
362+
```
363+
364+
### Why?
365+
366+
- Keeps source files focused on implementation
367+
- Makes tests easier to find and navigate
368+
- Reduces file size and cognitive load
369+
- Follows the pattern established in `src/studio/tests/`
370+
313371
## Provider Configuration
314372

315373
Set via environment or config:

CONFIG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# 🔧 Git-Iris Configuration Guide
22

3-
Git-Iris uses a TOML configuration file located at `~/.config/git-iris/config.toml`. This document outlines all available configuration options and their usage.
3+
> **📚 For comprehensive configuration guides, examples, and advanced topics, see the [full documentation](/docs/configuration/).**
4+
5+
Git-Iris uses a TOML configuration file located at `~/.config/git-iris/config.toml`. This document provides a quick reference for all available configuration options.
46

57
## 📁 Configuration Structure
68

@@ -239,3 +241,14 @@ git-iris gen --debug # Gorgeous color-coded agent execution
239241
```
240242

241243
For further assistance, please refer to the [Git-Iris documentation](https://github.com/hyperb1iss/git-iris/wiki) or [open an issue](https://github.com/hyperb1iss/git-iris/issues).
244+
245+
---
246+
247+
## 📖 Full Configuration Documentation
248+
249+
For comprehensive configuration guides, advanced topics, and examples:
250+
251+
- **[Configuration Overview](/docs/configuration/)** — Complete configuration guide
252+
- **[Provider Setup](/docs/configuration/providers.md)** — Detailed provider configuration
253+
- **[Instruction Presets](/docs/configuration/presets.md)** — Custom instruction presets
254+
- **[Project Configuration](/docs/configuration/project.md)** — Project-specific settings

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
_An intelligent agent that understands your code and crafts perfect Git artifacts_
1414

15-
[Installation](#-installation)[Studio TUI](#-iris-studio)[Commands](#-usage)[Configuration](#%EF%B8%8F-configuration)[Contributing](#-contributing)[License](#-license)
15+
📖 [Documentation](docs/)[Installation](#-installation)[Studio TUI](#-iris-studio)[Commands](#-usage)[Configuration](#%EF%B8%8F-configuration)[Contributing](#-contributing)[License](#-license)
1616

1717
</div>
1818

@@ -809,7 +809,7 @@ Distributed under the Apache 2.0 License. See `LICENSE` for more information.
809809

810810
<div align="center">
811811

812-
📚 [Documentation](https://github.com/hyperb1iss/git-iris/wiki) • 🐛 [Report Bug](https://github.com/hyperb1iss/git-iris/issues) • 💡 [Request Feature](https://github.com/hyperb1iss/git-iris/issues)
812+
📚 [Documentation](docs/) • 🐛 [Report Bug](https://github.com/hyperb1iss/git-iris/issues) • 💡 [Request Feature](https://github.com/hyperb1iss/git-iris/issues)
813813

814814
</div>
815815

docs/.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
.vitepress/cache
3+
.vitepress/dist

docs/.prettierrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"proseWrap": "preserve",
3+
"tabWidth": 2,
4+
"useTabs": false,
5+
"printWidth": 100,
6+
"singleQuote": true,
7+
"trailingComma": "es5"
8+
}

docs/.vitepress/config.ts

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
import { defineConfig } from 'vitepress'
2+
3+
export default defineConfig({
4+
title: 'Git-Iris',
5+
description: 'AI-powered Git workflows, beautifully crafted',
6+
7+
head: [
8+
['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }],
9+
['meta', { name: 'theme-color', content: '#e135ff' }],
10+
['meta', { property: 'og:type', content: 'website' }],
11+
['meta', { property: 'og:title', content: 'Git-Iris Documentation' }],
12+
['meta', { property: 'og:description', content: 'AI-powered Git workflows, beautifully crafted' }],
13+
],
14+
15+
themeConfig: {
16+
logo: '/logo.svg',
17+
18+
nav: [
19+
{ text: 'Guide', link: '/getting-started/' },
20+
{ text: 'Studio', link: '/studio/' },
21+
{ text: 'Themes', link: '/themes/' },
22+
{ text: 'Architecture', link: '/architecture/' },
23+
{ text: 'Extending', link: '/extending/' },
24+
{
25+
text: 'Reference',
26+
items: [
27+
{ text: 'CLI Reference', link: '/reference/cli' },
28+
{ text: 'Keybindings', link: '/reference/keybindings' },
29+
{ text: 'Tokens', link: '/reference/tokens' },
30+
{ text: 'Troubleshooting', link: '/reference/troubleshooting' },
31+
]
32+
}
33+
],
34+
35+
sidebar: {
36+
'/getting-started/': [
37+
{
38+
text: 'Getting Started',
39+
items: [
40+
{ text: 'Introduction', link: '/getting-started/' },
41+
{ text: 'Installation', link: '/getting-started/installation' },
42+
{ text: 'Quick Start', link: '/getting-started/quick-start' },
43+
{ text: 'Configuration', link: '/getting-started/configuration' },
44+
]
45+
}
46+
],
47+
'/user-guide/': [
48+
{
49+
text: 'User Guide',
50+
items: [
51+
{ text: 'Overview', link: '/user-guide/' },
52+
{ text: 'Commit Messages', link: '/user-guide/commits' },
53+
{ text: 'Code Reviews', link: '/user-guide/reviews' },
54+
{ text: 'Pull Requests', link: '/user-guide/pull-requests' },
55+
{ text: 'Changelogs', link: '/user-guide/changelogs' },
56+
{ text: 'Release Notes', link: '/user-guide/release-notes' },
57+
{ text: 'Presets & Instructions', link: '/user-guide/presets' },
58+
]
59+
}
60+
],
61+
'/studio/': [
62+
{
63+
text: 'Iris Studio',
64+
items: [
65+
{ text: 'Overview', link: '/studio/' },
66+
{ text: 'Navigation', link: '/studio/navigation' },
67+
{ text: 'Chat with Iris', link: '/studio/chat' },
68+
]
69+
},
70+
{
71+
text: 'Modes',
72+
items: [
73+
{ text: 'Explore', link: '/studio/modes/explore' },
74+
{ text: 'Commit', link: '/studio/modes/commit' },
75+
{ text: 'Review', link: '/studio/modes/review' },
76+
{ text: 'Pull Request', link: '/studio/modes/pr' },
77+
{ text: 'Changelog', link: '/studio/modes/changelog' },
78+
{ text: 'Release Notes', link: '/studio/modes/release-notes' },
79+
]
80+
}
81+
],
82+
'/configuration/': [
83+
{
84+
text: 'Configuration',
85+
items: [
86+
{ text: 'Overview', link: '/configuration/' },
87+
{ text: 'Providers', link: '/configuration/providers' },
88+
{ text: 'Models', link: '/configuration/models' },
89+
{ text: 'Project Config', link: '/configuration/project-config' },
90+
{ text: 'Environment', link: '/configuration/environment' },
91+
]
92+
}
93+
],
94+
'/themes/': [
95+
{
96+
text: 'Theme System',
97+
items: [
98+
{ text: 'SilkCircuit Design', link: '/themes/' },
99+
{ text: 'Built-in Themes', link: '/themes/gallery' },
100+
{ text: 'Creating Themes', link: '/themes/creating' },
101+
{ text: 'Token Reference', link: '/themes/tokens' },
102+
{ text: 'Styles & Gradients', link: '/themes/styles' },
103+
]
104+
}
105+
],
106+
'/architecture/': [
107+
{
108+
text: 'Architecture',
109+
items: [
110+
{ text: 'Overview', link: '/architecture/' },
111+
{ text: 'Agent System', link: '/architecture/agent' },
112+
{ text: 'Capabilities', link: '/architecture/capabilities' },
113+
{ text: 'Tools', link: '/architecture/tools' },
114+
{ text: 'Structured Output', link: '/architecture/output' },
115+
{ text: 'Context Strategy', link: '/architecture/context' },
116+
]
117+
}
118+
],
119+
'/studio-internals/': [
120+
{
121+
text: 'Studio Internals',
122+
items: [
123+
{ text: 'Overview', link: '/studio-internals/' },
124+
{ text: 'Reducer Pattern', link: '/studio-internals/reducer' },
125+
{ text: 'Event System', link: '/studio-internals/events' },
126+
{ text: 'Components', link: '/studio-internals/components' },
127+
]
128+
}
129+
],
130+
'/extending/': [
131+
{
132+
text: 'Extending Git-Iris',
133+
items: [
134+
{ text: 'Overview', link: '/extending/' },
135+
{ text: 'Adding Capabilities', link: '/extending/capabilities' },
136+
{ text: 'Adding Tools', link: '/extending/tools' },
137+
{ text: 'Adding Modes', link: '/extending/modes' },
138+
{ text: 'Contributing', link: '/extending/contributing' },
139+
]
140+
}
141+
],
142+
'/reference/': [
143+
{
144+
text: 'Reference',
145+
items: [
146+
{ text: 'CLI Commands', link: '/reference/cli' },
147+
{ text: 'Keybindings', link: '/reference/keybindings' },
148+
{ text: 'Tokens', link: '/reference/tokens' },
149+
{ text: 'Troubleshooting', link: '/reference/troubleshooting' },
150+
]
151+
}
152+
],
153+
},
154+
155+
socialLinks: [
156+
{ icon: 'github', link: 'https://github.com/hyperb1iss/git-iris' }
157+
],
158+
159+
footer: {
160+
message: 'Released under the Apache 2.0 License.',
161+
copyright: 'Copyright © 2024 Stefanie Jane'
162+
},
163+
164+
search: {
165+
provider: 'local'
166+
}
167+
},
168+
169+
markdown: {
170+
theme: {
171+
light: 'github-light',
172+
dark: 'one-dark-pro'
173+
}
174+
}
175+
})

0 commit comments

Comments
 (0)