Skip to content

Commit ee9c794

Browse files
rubenmarcusclaude
andauthored
feat(docs): revamp homepage demo + SDD documentation (#324)
* feat(docs): revamp homepage demo section and add SDD documentation - Replace GIF-based DemoShowcase with terminal-style code demos - Add OpenSpec as 5th tab (OpenSpec, Figma, GitHub, Linear, Notion) - Rename section from "One CLI, Four Integrations" to "One CLI, Five Sources" - Add SDD comparison table (ralph-starter vs OpenSpec vs Spec-Kit vs Kiro) - New docs: Spec Driven Development guide, OpenSpec source, spec CLI reference - Add figma, spec, openspec pages to sidebar navigation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(docs): add OpenSpec to integrations, use cases, and hero section - Add OpenSpec to IntegrationShowcase (first position) - Add OpenSpec "Spec Driven Development" use case card - Add OpenSpec scenario to HeroSection rotation - Add OpenSpec logo to hero integration logos bar - Create openspec-logo.svg icon Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(docs): add OpenSpec to /integrations and /use-cases pages - Add OpenSpec card to /integrations page with features, setup steps, and docs link - Add OpenSpec "Spec to Implementation" use case to /use-cases page with workflow steps - Update page meta descriptions to include OpenSpec Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: remove Todoist integration entirely Delete TodoistSource, TodoistOAuthProvider, and all references across src, docs, CLAUDE.md, CONTRIBUTING.md, and marketplace.json. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add OpenSpec wizard command and update homepage CLI examples - Add `ralph-starter openspec` interactive wizard that detects/creates openspec/ directories, browses changes with validation scores, scaffolds new changes, and delegates to the run command - Update all homepage CLI examples (HeroSection, DemoShowcase, FeatureSections, QuickStart) to use wizard commands instead of verbose --from flags - Center-align last card on integrations and use-cases pages when odd count Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore(release): v0.5.2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: resolve PR #324 review comments - Change `interface Demo` to `type Demo` in DemoShowcase (P2) - Fix `spec validate --path` to handle directory paths, not just files - Fix `spec summary` to read specs/*/spec.md matching validate behavior - Update scoring tables to show partial credit tiers (RFC 2119: 25/10, Depth: 10/5) - Fix invalid file source syntax in SDD guide (--from ./path not --from file path) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 873fd07 commit ee9c794

36 files changed

Lines changed: 1468 additions & 411 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"email": "hello@multivmlabs.com"
66
},
77
"metadata": {
8-
"description": "Autonomous AI coding loops — fetch specs from GitHub, Linear, Notion, Figma, and Todoist, then orchestrate coding agents to build software automatically.",
8+
"description": "Autonomous AI coding loops — fetch specs from GitHub, Linear, Notion, Figma, and OpenSpec, then orchestrate coding agents to build software automatically.",
99
"version": "0.4.0"
1010
},
1111
"plugins": [

CLAUDE.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Note: ralph-starter itself supports any package manager in user projects via `de
1313

1414
## What is ralph-starter?
1515

16-
A CLI tool that runs autonomous AI coding loops. It fetches specs from GitHub, Linear, Notion, Figma, and Todoist, then orchestrates coding agents to build software automatically. Each loop iteration spawns a fresh agent process with a progressively trimmed context — continuity is maintained through the filesystem (`IMPLEMENTATION_PLAN.md`, `.ralph/iteration-log.md`), not conversation history.
16+
A CLI tool that runs autonomous AI coding loops. It fetches specs from GitHub, Linear, Notion, Figma, and OpenSpec, then orchestrates coding agents to build software automatically. Each loop iteration spawns a fresh agent process with a progressively trimmed context — continuity is maintained through the filesystem (`IMPLEMENTATION_PLAN.md`, `.ralph/iteration-log.md`), not conversation history.
1717

1818
## Quick Commands
1919

@@ -43,7 +43,6 @@ pnpm typecheck # Type-check without emitting
4343
- Linear: Tickets by team/project
4444
- Notion: Pages and databases
4545
- Figma: Design specs and tokens
46-
- Todoist: Tasks and projects
4746

4847
**Agents** - AI coding assistants ralph-starter orchestrates:
4948
- Claude Code, Cursor, OpenCode, OpenAI Codex, GitHub Copilot, Gemini CLI, Amp, Openclaw
@@ -78,7 +77,7 @@ pnpm typecheck # Type-check without emitting
7877

7978
| Directory | Purpose |
8079
|-----------|---------|
81-
| `auth/` | OAuth providers (Anthropic, OpenAI, Linear, Notion, Todoist) |
80+
| `auth/` | OAuth providers (Anthropic, OpenAI, Linear, Notion) |
8281
| `automation/` | Git operations (commit, push, PR creation) |
8382
| `commands/` | CLI commands (run, init, plan, auto, fix, pause, resume, etc.) |
8483
| `config/` | Configuration management |

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ ralph-starter/
3737
│ ├── commands/ # CLI commands (run, init, plan, etc.)
3838
│ ├── sources/ # Input source system
3939
│ │ ├── builtin/ # File, URL, PDF sources
40-
│ │ └── integrations/ # Todoist, Linear, Notion, GitHub
40+
│ │ └── integrations/ # GitHub, Linear, Notion, Figma
4141
│ ├── wizard/ # Interactive wizard & idea mode
4242
│ ├── loop/ # Autonomous loop engine
4343
│ ├── mcp/ # MCP server implementation

docs/docs/cli/auth.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
sidebar_position: 7
33
title: auth
44
description: Browser-based OAuth authentication for integrations
5-
keywords: [cli, auth, command, oauth, authentication, linear, notion, github, todoist]
5+
keywords: [cli, auth, command, oauth, authentication, linear, notion, github]
66
---
77

88
# ralph-starter auth
99

10-
Browser-based OAuth authentication for integrations. Supports OAuth PKCE flows for services like Linear, and manages manual API key configuration for services like Notion, Todoist, and GitHub.
10+
Browser-based OAuth authentication for integrations. Supports OAuth PKCE flows for services like Linear, and manages manual API key configuration for services like Notion and GitHub.
1111

1212
## Synopsis
1313

@@ -31,7 +31,7 @@ Credentials are stored locally in the ralph-starter sources configuration file.
3131

3232
| Argument | Description |
3333
|----------|-------------|
34-
| `service` | The service to authenticate with (e.g., `linear`, `notion`, `todoist`, `github`) |
34+
| `service` | The service to authenticate with (e.g., `linear`, `notion`, `github`) |
3535

3636
## Options
3737

@@ -46,7 +46,6 @@ Credentials are stored locally in the ralph-starter sources configuration file.
4646
|---------|-------------|---------|
4747
| `linear` | Browser OAuth (PKCE) | Seamless browser-based flow. Requires `RALPH_LINEAR_CLIENT_ID` env var. |
4848
| `notion` | Manual API key | Set via `ralph-starter config set notion.apiKey <key>`. Get key at [notion.so/my-integrations](https://www.notion.so/my-integrations). |
49-
| `todoist` | Manual API key | Set via `ralph-starter config set todoist.apiKey <key>`. Get key at [todoist.com/prefs/integrations](https://todoist.com/prefs/integrations). |
5049
| `github` | Manual API key | Set via `ralph-starter config set github.apiKey <key>`. Get token at [github.com/settings/tokens](https://github.com/settings/tokens). |
5150

5251
## Examples
@@ -75,8 +74,6 @@ Credentials stored in: /home/user/.config/ralph-starter/sources.json
7574
✓ Linear - Authenticated
7675
○ Notion - Manual API key
7776
Run: ralph-starter config set notion.apiKey <your-key>
78-
○ Todoist - Manual API key
79-
Run: ralph-starter config set todoist.apiKey <your-key>
8077
○ GitHub - Manual API key
8178
Run: ralph-starter config set github.apiKey <your-key>
8279
```
@@ -96,9 +93,6 @@ For services that do not support OAuth PKCE, configure API keys manually:
9693
# Notion
9794
ralph-starter config set notion.apiKey ntn_your_api_key_here
9895

99-
# Todoist
100-
ralph-starter config set todoist.apiKey your_todoist_api_key
101-
10296
# GitHub
10397
ralph-starter config set github.apiKey ghp_your_github_token
10498
```

docs/docs/cli/spec.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
sidebar_position: 15
3+
title: spec
4+
description: Validate, list, and summarize specs
5+
keywords: [cli, spec, validate, sdd, spec driven development]
6+
---
7+
8+
# ralph-starter spec
9+
10+
Validate, list, and summarize specs for spec-driven development workflows.
11+
12+
## Synopsis
13+
14+
```bash
15+
ralph-starter spec <action> [options]
16+
```
17+
18+
## Actions
19+
20+
### validate
21+
22+
Validate spec completeness across the project.
23+
24+
```bash
25+
ralph-starter spec validate
26+
ralph-starter spec validate --path openspec/changes/add-auth
27+
```
28+
29+
Auto-detects the spec format (OpenSpec, Spec-Kit, or raw markdown) and validates each spec against a 0-100 completeness score.
30+
31+
**Checks performed:**
32+
33+
| Check | Points | Description |
34+
|-------|--------|-------------|
35+
| Proposal | 20 | Has a proposal, rationale, or overview section |
36+
| RFC 2119 | 25 / 10 | 25 if SHALL, MUST, SHOULD, or MAY keywords present; 10 if absent but content >200 chars |
37+
| Design | 15 | Has a design, architecture, or technical section |
38+
| Tasks | 15 | Has a tasks section or checkbox items |
39+
| Criteria | 15 | Has Given/When/Then acceptance criteria |
40+
| Depth | 10 / 5 | 10 if content >= 500 chars; 5 if 200-499 chars |
41+
42+
Specs scoring below 40 are flagged as failing.
43+
44+
### list
45+
46+
List available specs from any detected source.
47+
48+
```bash
49+
ralph-starter spec list
50+
```
51+
52+
Outputs all discovered specs with their available files.
53+
54+
### summary
55+
56+
Show spec completeness metrics.
57+
58+
```bash
59+
ralph-starter spec summary
60+
```
61+
62+
Displays format, change count, average completeness score.
63+
64+
## Options
65+
66+
| Option | Description |
67+
|--------|-------------|
68+
| `--path <path>` | Path to a specific spec file or directory to validate |
69+
70+
## Examples
71+
72+
```bash
73+
# Validate all specs in an OpenSpec project
74+
ralph-starter spec validate
75+
# PASS add-auth (85/100)
76+
# FAIL fix-login (30/100)
77+
# No acceptance criteria found.
78+
79+
# Validate a specific file
80+
ralph-starter spec validate --path specs/api-spec.md
81+
82+
# Quick overview
83+
ralph-starter spec summary
84+
# Format: OpenSpec
85+
# Changes: 3 active, 1 archived
86+
# Specs: 5 global
87+
# Average: 72/100 completeness
88+
```
89+
90+
## See also
91+
92+
- [Spec Driven Development guide](/docs/guides/spec-driven-development)
93+
- [OpenSpec source](/docs/sources/openspec)
94+
- [run --spec-validate](/docs/cli/run) -- Validate before running a loop
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
---
2+
sidebar_position: 7
3+
title: Spec Driven Development
4+
description: How ralph-starter implements Spec Driven Development for AI coding agents
5+
keywords: [sdd, spec driven development, openspec, spec-kit, specs, workflow]
6+
---
7+
8+
# Spec Driven Development
9+
10+
Spec Driven Development (SDD) is a methodology where you write a structured specification before any code is generated. The spec becomes the contract between human intent and AI execution.
11+
12+
ralph-starter is built around this principle: **pull specs from where they already live, validate them, then run autonomous loops until done.**
13+
14+
## Why specs matter for AI coding
15+
16+
Without a spec, AI agents guess. A vague prompt like "add authentication" produces plausible but wrong code. You waste iterations fixing misunderstandings.
17+
18+
With a clear spec:
19+
- **2 loops** instead of 5
20+
- **$0.50** instead of $3+
21+
- **Correct output** instead of close-but-wrong
22+
23+
The spec is the highest-leverage investment in any AI coding workflow.
24+
25+
## How ralph-starter does SDD
26+
27+
```
28+
Spec → Validate → Plan → Agent builds → Lint/Build/Test → Commit → PR
29+
```
30+
31+
### 1. Pull specs from any source
32+
33+
Your specs already exist somewhere. ralph-starter fetches them:
34+
35+
```bash
36+
# From OpenSpec directories
37+
ralph-starter run --from openspec:add-auth
38+
39+
# From GitHub issues
40+
ralph-starter run --from github --project myorg/api --label ready
41+
42+
# From Linear tickets
43+
ralph-starter run --from linear --project "Backend"
44+
45+
# From Notion docs
46+
ralph-starter run --from notion --project "https://notion.so/spec-abc"
47+
48+
# From Figma designs
49+
ralph-starter figma
50+
```
51+
52+
### 2. Validate before building
53+
54+
The `--spec-validate` flag checks completeness before spending tokens:
55+
56+
```bash
57+
ralph-starter run --from openspec:add-auth --spec-validate
58+
```
59+
60+
The validator scores specs 0-100 based on:
61+
62+
| Check | Points | What it looks for |
63+
|-------|--------|-------------------|
64+
| Proposal/rationale | 20 | `## Proposal`, `## Why`, `## Overview` section |
65+
| RFC 2119 keywords | 25 / 10 | 25 if SHALL, MUST, SHOULD, MAY present; 10 partial credit if absent but content >200 chars |
66+
| Design section | 15 | `## Design`, `## Architecture`, `## Technical` |
67+
| Task breakdown | 15 | `## Tasks` or `- [ ]` checklists |
68+
| Acceptance criteria | 15 | Given/When/Then blocks |
69+
| Content depth | 10 / 5 | 10 if >= 500 chars; 5 if 200-499 chars |
70+
71+
Specs scoring below 40/100 are flagged before the loop starts.
72+
73+
### 3. Autonomous execution
74+
75+
Once validated, ralph-starter runs the loop:
76+
1. Build iteration context from spec + plan
77+
2. Spawn the AI agent with trimmed prompt
78+
3. Collect agent output
79+
4. Run validation (lint, build, tests)
80+
5. If validation fails, feed errors back to agent
81+
6. If validation passes, commit
82+
7. Repeat until task is complete
83+
84+
## The `spec` command
85+
86+
ralph-starter includes a dedicated CLI for spec operations:
87+
88+
```bash
89+
# Validate all specs in the project
90+
ralph-starter spec validate
91+
92+
# List available specs (auto-detects format)
93+
ralph-starter spec list
94+
95+
# Show completeness metrics
96+
ralph-starter spec summary
97+
```
98+
99+
It auto-detects **OpenSpec**, **Spec-Kit**, or **raw markdown** format.
100+
101+
## Comparison: ralph-starter vs other SDD tools
102+
103+
| Capability | ralph-starter | OpenSpec | Spec-Kit | Kiro |
104+
|-----------|--------------|---------|---------|------|
105+
| **Spec format** | Any (OpenSpec, Spec-Kit, raw, GitHub, Linear, Notion, Figma) | OpenSpec only | Spec-Kit only | EARS notation |
106+
| **Execution** | Fully autonomous loops | Manual (`/opsx:apply`) | Manual per phase | IDE-integrated agents |
107+
| **Agent support** | Claude Code, Cursor, Codex, OpenCode, Amp | Any chat agent | Any chat agent | Kiro agents only |
108+
| **Validation** | Lint + build + test + visual | None | None | Agent hooks |
109+
| **Spec validation** | 0-100 scoring with RFC 2119 check | Zod schema | Phase gates | Auto-generated |
110+
| **Multi-source** | GitHub, Linear, Notion, Figma, OpenSpec, URLs, files | Local filesystem | Local filesystem | IDE workspace |
111+
| **Cost tracking** | Per-iteration token + cost tracking | N/A | N/A | Subscription model |
112+
| **Lock-in** | None (CLI, any OS) | None | GitHub ecosystem | AWS account required |
113+
| **Pricing** | Free + pay-per-API | Free | Free | $19-39/month |
114+
115+
## Writing good specs
116+
117+
A spec does not need to be long. 10-20 lines is enough:
118+
119+
```markdown
120+
## Proposal
121+
122+
Add JWT authentication to the Express API.
123+
124+
## Requirements
125+
126+
- POST /api/auth/login takes { email, password }, validates against users table
127+
- Return { token, expiresIn } on success, 401 with { error } on failure
128+
- Token TTL: 24h
129+
- Auth middleware in src/middleware/auth.ts (Authorization: Bearer header)
130+
- The API MUST reject expired tokens with 401
131+
- The API SHALL rate-limit login attempts to 5/minute per IP
132+
133+
## Tasks
134+
135+
- [ ] Create auth middleware
136+
- [ ] Add login endpoint
137+
- [ ] Add token refresh endpoint
138+
- [ ] Write tests
139+
140+
## Acceptance Criteria
141+
142+
Given: A user with valid credentials
143+
When: They POST to /api/auth/login
144+
Then: They receive a JWT token with 24h TTL
145+
146+
Given: A request with an expired token
147+
When: It hits a protected endpoint
148+
Then: The API returns 401 Unauthorized
149+
```
150+
151+
This spec takes 3 minutes to write. It tells the agent exactly what to build, where to put it, and how to verify it works.
152+
153+
## Supported spec formats
154+
155+
### OpenSpec
156+
157+
```
158+
openspec/
159+
├── changes/
160+
│ └── add-auth/
161+
│ ├── proposal.md
162+
│ ├── design.md
163+
│ ├── tasks.md
164+
│ └── specs/
165+
│ └── auth/
166+
│ └── spec.md
167+
└── specs/
168+
└── api/
169+
└── spec.md
170+
```
171+
172+
```bash
173+
ralph-starter run --from openspec:add-auth
174+
```
175+
176+
### Spec-Kit (GitHub)
177+
178+
```
179+
specs/
180+
├── constitution.md
181+
├── specification.md
182+
├── plan.md
183+
└── tasks.md
184+
```
185+
186+
```bash
187+
ralph-starter spec validate # auto-detects Spec-Kit format
188+
```
189+
190+
### Raw markdown
191+
192+
```
193+
specs/
194+
├── auth-spec.md
195+
├── api-spec.md
196+
└── db-migration.md
197+
```
198+
199+
```bash
200+
ralph-starter run --from ./specs/auth-spec.md
201+
```
202+
203+
## Next steps
204+
205+
- [OpenSpec source docs](/docs/sources/openspec) -- How to use OpenSpec with ralph-starter
206+
- [Spec CLI reference](/docs/cli/spec) -- Full `ralph-starter spec` command docs
207+
- [Workflow presets](/docs/guides/workflow-presets) -- Pre-configured SDD presets

0 commit comments

Comments
 (0)