-
-
Notifications
You must be signed in to change notification settings - Fork 6
feat(docs): revamp homepage demo + SDD documentation #324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
aa8ec62
feat(docs): revamp homepage demo section and add SDD documentation
rubenmarcus fc8ede1
feat(docs): add OpenSpec to integrations, use cases, and hero section
rubenmarcus cc5ba7b
feat(docs): add OpenSpec to /integrations and /use-cases pages
rubenmarcus 4478497
refactor: remove Todoist integration entirely
rubenmarcus 645f5d1
feat: add OpenSpec wizard command and update homepage CLI examples
rubenmarcus 302c7f5
chore(release): v0.5.2
rubenmarcus 5960d5e
fix: resolve PR #324 review comments
rubenmarcus File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| --- | ||
| sidebar_position: 15 | ||
| title: spec | ||
| description: Validate, list, and summarize specs | ||
| keywords: [cli, spec, validate, sdd, spec driven development] | ||
| --- | ||
|
|
||
| # ralph-starter spec | ||
|
|
||
| Validate, list, and summarize specs for spec-driven development workflows. | ||
|
|
||
| ## Synopsis | ||
|
|
||
| ```bash | ||
| ralph-starter spec <action> [options] | ||
| ``` | ||
|
|
||
| ## Actions | ||
|
|
||
| ### validate | ||
|
|
||
| Validate spec completeness across the project. | ||
|
|
||
| ```bash | ||
| ralph-starter spec validate | ||
| ralph-starter spec validate --path openspec/changes/add-auth | ||
| ``` | ||
|
|
||
| Auto-detects the spec format (OpenSpec, Spec-Kit, or raw markdown) and validates each spec against a 0-100 completeness score. | ||
|
|
||
rubenmarcus marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| **Checks performed:** | ||
|
|
||
| | Check | Points | Description | | ||
| |-------|--------|-------------| | ||
| | Proposal | 20 | Has a proposal, rationale, or overview section | | ||
| | RFC 2119 | 25 / 10 | 25 if SHALL, MUST, SHOULD, or MAY keywords present; 10 if absent but content >200 chars | | ||
| | Design | 15 | Has a design, architecture, or technical section | | ||
| | Tasks | 15 | Has a tasks section or checkbox items | | ||
rubenmarcus marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| | Criteria | 15 | Has Given/When/Then acceptance criteria | | ||
| | Depth | 10 / 5 | 10 if content >= 500 chars; 5 if 200-499 chars | | ||
|
|
||
| Specs scoring below 40 are flagged as failing. | ||
|
|
||
| ### list | ||
|
|
||
| List available specs from any detected source. | ||
|
|
||
| ```bash | ||
| ralph-starter spec list | ||
| ``` | ||
|
|
||
| Outputs all discovered specs with their available files. | ||
|
|
||
| ### summary | ||
|
|
||
| Show spec completeness metrics. | ||
|
|
||
| ```bash | ||
| ralph-starter spec summary | ||
| ``` | ||
|
|
||
| Displays format, change count, average completeness score. | ||
|
|
||
| ## Options | ||
|
|
||
| | Option | Description | | ||
rubenmarcus marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| |--------|-------------| | ||
| | `--path <path>` | Path to a specific spec file or directory to validate | | ||
|
|
||
| ## Examples | ||
|
|
||
| ```bash | ||
| # Validate all specs in an OpenSpec project | ||
| ralph-starter spec validate | ||
| # PASS add-auth (85/100) | ||
| # FAIL fix-login (30/100) | ||
| # No acceptance criteria found. | ||
|
|
||
| # Validate a specific file | ||
| ralph-starter spec validate --path specs/api-spec.md | ||
|
|
||
| # Quick overview | ||
| ralph-starter spec summary | ||
| # Format: OpenSpec | ||
| # Changes: 3 active, 1 archived | ||
| # Specs: 5 global | ||
| # Average: 72/100 completeness | ||
| ``` | ||
|
|
||
| ## See also | ||
|
|
||
| - [Spec Driven Development guide](/docs/guides/spec-driven-development) | ||
| - [OpenSpec source](/docs/sources/openspec) | ||
| - [run --spec-validate](/docs/cli/run) -- Validate before running a loop | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,207 @@ | ||
| --- | ||
| sidebar_position: 7 | ||
| title: Spec Driven Development | ||
| description: How ralph-starter implements Spec Driven Development for AI coding agents | ||
| keywords: [sdd, spec driven development, openspec, spec-kit, specs, workflow] | ||
| --- | ||
|
|
||
| # Spec Driven Development | ||
|
|
||
| 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. | ||
|
|
||
| ralph-starter is built around this principle: **pull specs from where they already live, validate them, then run autonomous loops until done.** | ||
|
|
||
| ## Why specs matter for AI coding | ||
|
|
||
| Without a spec, AI agents guess. A vague prompt like "add authentication" produces plausible but wrong code. You waste iterations fixing misunderstandings. | ||
|
|
||
| With a clear spec: | ||
| - **2 loops** instead of 5 | ||
| - **$0.50** instead of $3+ | ||
| - **Correct output** instead of close-but-wrong | ||
|
|
||
| The spec is the highest-leverage investment in any AI coding workflow. | ||
|
|
||
| ## How ralph-starter does SDD | ||
|
|
||
| ``` | ||
| Spec β Validate β Plan β Agent builds β Lint/Build/Test β Commit β PR | ||
| ``` | ||
|
|
||
| ### 1. Pull specs from any source | ||
|
|
||
| Your specs already exist somewhere. ralph-starter fetches them: | ||
|
|
||
| ```bash | ||
| # From OpenSpec directories | ||
| ralph-starter run --from openspec:add-auth | ||
|
|
||
| # From GitHub issues | ||
| ralph-starter run --from github --project myorg/api --label ready | ||
|
|
||
| # From Linear tickets | ||
| ralph-starter run --from linear --project "Backend" | ||
|
|
||
| # From Notion docs | ||
| ralph-starter run --from notion --project "https://notion.so/spec-abc" | ||
|
|
||
| # From Figma designs | ||
| ralph-starter figma | ||
| ``` | ||
|
|
||
| ### 2. Validate before building | ||
|
|
||
| The `--spec-validate` flag checks completeness before spending tokens: | ||
|
|
||
| ```bash | ||
| ralph-starter run --from openspec:add-auth --spec-validate | ||
| ``` | ||
|
|
||
| The validator scores specs 0-100 based on: | ||
|
|
||
| | Check | Points | What it looks for | | ||
| |-------|--------|-------------------| | ||
| | Proposal/rationale | 20 | `## Proposal`, `## Why`, `## Overview` section | | ||
| | RFC 2119 keywords | 25 / 10 | 25 if SHALL, MUST, SHOULD, MAY present; 10 partial credit if absent but content >200 chars | | ||
| | Design section | 15 | `## Design`, `## Architecture`, `## Technical` | | ||
| | Task breakdown | 15 | `## Tasks` or `- [ ]` checklists | | ||
| | Acceptance criteria | 15 | Given/When/Then blocks | | ||
| | Content depth | 10 / 5 | 10 if >= 500 chars; 5 if 200-499 chars | | ||
|
|
||
| Specs scoring below 40/100 are flagged before the loop starts. | ||
|
|
||
| ### 3. Autonomous execution | ||
|
|
||
| Once validated, ralph-starter runs the loop: | ||
| 1. Build iteration context from spec + plan | ||
| 2. Spawn the AI agent with trimmed prompt | ||
| 3. Collect agent output | ||
| 4. Run validation (lint, build, tests) | ||
| 5. If validation fails, feed errors back to agent | ||
| 6. If validation passes, commit | ||
| 7. Repeat until task is complete | ||
|
|
||
| ## The `spec` command | ||
|
|
||
| ralph-starter includes a dedicated CLI for spec operations: | ||
|
|
||
| ```bash | ||
| # Validate all specs in the project | ||
| ralph-starter spec validate | ||
|
|
||
| # List available specs (auto-detects format) | ||
| ralph-starter spec list | ||
|
|
||
| # Show completeness metrics | ||
| ralph-starter spec summary | ||
| ``` | ||
|
|
||
| It auto-detects **OpenSpec**, **Spec-Kit**, or **raw markdown** format. | ||
|
|
||
| ## Comparison: ralph-starter vs other SDD tools | ||
|
|
||
| | Capability | ralph-starter | OpenSpec | Spec-Kit | Kiro | | ||
| |-----------|--------------|---------|---------|------| | ||
| | **Spec format** | Any (OpenSpec, Spec-Kit, raw, GitHub, Linear, Notion, Figma) | OpenSpec only | Spec-Kit only | EARS notation | | ||
| | **Execution** | Fully autonomous loops | Manual (`/opsx:apply`) | Manual per phase | IDE-integrated agents | | ||
| | **Agent support** | Claude Code, Cursor, Codex, OpenCode, Amp | Any chat agent | Any chat agent | Kiro agents only | | ||
| | **Validation** | Lint + build + test + visual | None | None | Agent hooks | | ||
| | **Spec validation** | 0-100 scoring with RFC 2119 check | Zod schema | Phase gates | Auto-generated | | ||
| | **Multi-source** | GitHub, Linear, Notion, Figma, OpenSpec, URLs, files | Local filesystem | Local filesystem | IDE workspace | | ||
| | **Cost tracking** | Per-iteration token + cost tracking | N/A | N/A | Subscription model | | ||
| | **Lock-in** | None (CLI, any OS) | None | GitHub ecosystem | AWS account required | | ||
rubenmarcus marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| | **Pricing** | Free + pay-per-API | Free | Free | $19-39/month | | ||
|
|
||
| ## Writing good specs | ||
|
|
||
| A spec does not need to be long. 10-20 lines is enough: | ||
|
|
||
| ```markdown | ||
| ## Proposal | ||
|
|
||
| Add JWT authentication to the Express API. | ||
|
|
||
| ## Requirements | ||
|
|
||
| - POST /api/auth/login takes { email, password }, validates against users table | ||
| - Return { token, expiresIn } on success, 401 with { error } on failure | ||
| - Token TTL: 24h | ||
| - Auth middleware in src/middleware/auth.ts (Authorization: Bearer header) | ||
| - The API MUST reject expired tokens with 401 | ||
| - The API SHALL rate-limit login attempts to 5/minute per IP | ||
|
|
||
| ## Tasks | ||
|
|
||
| - [ ] Create auth middleware | ||
| - [ ] Add login endpoint | ||
| - [ ] Add token refresh endpoint | ||
| - [ ] Write tests | ||
|
|
||
| ## Acceptance Criteria | ||
|
|
||
| Given: A user with valid credentials | ||
| When: They POST to /api/auth/login | ||
| Then: They receive a JWT token with 24h TTL | ||
|
|
||
| Given: A request with an expired token | ||
| When: It hits a protected endpoint | ||
| Then: The API returns 401 Unauthorized | ||
| ``` | ||
|
|
||
| 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. | ||
|
|
||
| ## Supported spec formats | ||
|
|
||
| ### OpenSpec | ||
|
|
||
| ``` | ||
| openspec/ | ||
| βββ changes/ | ||
| β βββ add-auth/ | ||
| β βββ proposal.md | ||
| β βββ design.md | ||
| β βββ tasks.md | ||
| β βββ specs/ | ||
| β βββ auth/ | ||
| β βββ spec.md | ||
| βββ specs/ | ||
| βββ api/ | ||
| βββ spec.md | ||
| ``` | ||
|
|
||
| ```bash | ||
| ralph-starter run --from openspec:add-auth | ||
| ``` | ||
|
|
||
| ### Spec-Kit (GitHub) | ||
|
|
||
| ``` | ||
| specs/ | ||
| βββ constitution.md | ||
| βββ specification.md | ||
| βββ plan.md | ||
| βββ tasks.md | ||
| ``` | ||
|
|
||
| ```bash | ||
| ralph-starter spec validate # auto-detects Spec-Kit format | ||
| ``` | ||
|
|
||
| ### Raw markdown | ||
|
|
||
| ``` | ||
| specs/ | ||
| βββ auth-spec.md | ||
| βββ api-spec.md | ||
| βββ db-migration.md | ||
| ``` | ||
|
|
||
| ```bash | ||
| ralph-starter run --from ./specs/auth-spec.md | ||
| ``` | ||
|
|
||
| ## Next steps | ||
|
|
||
| - [OpenSpec source docs](/docs/sources/openspec) -- How to use OpenSpec with ralph-starter | ||
| - [Spec CLI reference](/docs/cli/spec) -- Full `ralph-starter spec` command docs | ||
| - [Workflow presets](/docs/guides/workflow-presets) -- Pre-configured SDD presets | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.