AI-native enterprise documentation platform
Project description
gv-exp-specwright
AI-native enterprise documentation platform. Living specs that generate tickets, AI agents that maintain docs, repo-native knowledge that replaces Confluence.
Status
Stage: Brief Started: 2026-02-06 Timebox: 4 weeks (2 concierge + 2 prototype) Budget: $500
Hypothesis
We believe that engineering orgs (50-500 devs) will replace Confluence with a repo-native documentation platform because AI agents can keep docs alive automatically, and structured specs that generate tickets and track implementation progress are more valuable than static wiki pages.
Links
- Experiment Brief
- Tracking Issue (see [EXPERIMENT] specwright)
Quick Start
# Clone
git clone git@github.com:Gerner-Ventures/gv-exp-specwright.git
cd gv-exp-specwright
# Install all dependencies (backend + frontend)
make install
# Run tests
make test
# Run backend + frontend dev servers in parallel
make dev
Make Commands
Run make help for the full list. Highlights:
| Command | Description |
|---|---|
make install |
Install backend + frontend dependencies |
make dev |
Run FastAPI dev server with Doppler secrets on :3000 |
make test |
Run Python test suite |
make lint |
Lint backend (ruff) + frontend (eslint) |
make format |
Auto-fix and format Python code |
make typecheck |
Run mypy + vue-tsc type checks |
make build |
Build Vue SPA for production |
make build-docker |
Build production Docker image |
make docker-dev |
Run dev Docker image with source mounts |
make helm-template |
Render Helm chart locally |
make clean-all |
Remove all build artifacts + Docker images |
Dev Environment (K8s)
Each developer gets an isolated environment on the shared DOKS cluster via DevSpace.
Prerequisites
- Docker (DevSpace builds images locally)
- DevSpace CLI (v6+)
- Doppler CLI — secrets management
- doctl — DigitalOcean CLI
- kubectl (installed via
doctl)
One-time setup
doppler login
doctl auth init
doctl registry login # DOCR auth
doctl kubernetes cluster kubeconfig save gv-shared # kubeconfig
Daily workflow
export DEVSPACE_USERNAME=ng # or set in .envrc
devspace dev # build, deploy, sync, port-forward
# → http://localhost:3000 (port-forwarded)
# → https://ng.specwright.gernerventures.com (ingress, after DNS setup)
devspace run logs # tail pod logs
devspace run sync-secrets # re-sync Doppler secrets
devspace run sync-trigger # manually run reverse sync cron
devspace purge # tear down dev environment
File changes in src/, templates/, and static/ sync into the pod and uvicorn auto-reloads.
See docs/self-hosting.md for production deployment and more details.
Architecture
Three-tier platform vision:
| Tier | What | Status |
|---|---|---|
| Repo Agents | Per-repo spec parsing, PR analysis, doc maintenance, ticket sync | v0.1 target |
| Agent Mesh | Cross-repo impact analysis, conflict detection, dependency mapping | Future |
| Org Brain | Cross-repo search, ownership graph, decision index, onboarding gen | Future |
Tech Stack
| Component | Technology |
|---|---|
| Backend | Python 3.12+, FastAPI, uvicorn |
| Agent runtime | Anthropic Python SDK (Claude) |
| Spec parser | Custom markdown parser + python-frontmatter |
| Ticket sync | Jira REST API / Linear GraphQL API / GitHub Issues |
| Web UI | Vue 3, Vite, Tailwind CSS, Pinia |
| Hosting | Self-hosted K8s (DigitalOcean) via Helm chart |
| Secrets | Doppler |
| Dev tooling | DevSpace |
Project Structure
src/specwright/
main.py # FastAPI app: webhook routes, health checks
settings.py # Pydantic Settings (env vars)
github/ # GitHub App webhook handling
agent/ # Claude agent runtime
parser/ # Spec markdown parser + writer
sync/ # Ticket sync engine + adapters
config/ # SPECWRIGHT.yaml parser
cron/ # Reverse sync cron job
web/ # Web routes (serves Vue SPA + Jinja2 fallback)
cli.py # CLI entrypoint
mcp/ # MCP server
frontend/ # Vue 3 SPA (Vite + Tailwind + Pinia)
tests/ # pytest tests
templates/ # Jinja2 HTML templates (fallback)
static/ # CSS/JS/images + built SPA (static/app/)
chart/specwright/ # Helm chart for K8s deployment
Current Metrics
| Metric | Target | Current |
|---|---|---|
| PM spec adoption | 60% | - |
| Doc freshness | 70% | - |
| Engineer engagement | 40% | - |
| PM time saved | 3 hrs/wk | - |
| Question answer quality | 70% | - |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gv_specwright-1.15.0.tar.gz.
File metadata
- Download URL: gv_specwright-1.15.0.tar.gz
- Upload date:
- Size: 14.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9173a71961306bfaae4cfd5ee32fba8dff1c5cd733e4b3af60f9b2b96b05e05
|
|
| MD5 |
6b9286757431c3c5bc9f8f73e5fc9b50
|
|
| BLAKE2b-256 |
2b2c4e902db9976af3f15517e673d5803d1f1ba7efacb5162cd9195b3c8d2173
|
Provenance
The following attestation bundles were made for gv_specwright-1.15.0.tar.gz:
Publisher:
publish.yml on Gerner-Ventures/gv-exp-specwright
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gv_specwright-1.15.0.tar.gz -
Subject digest:
a9173a71961306bfaae4cfd5ee32fba8dff1c5cd733e4b3af60f9b2b96b05e05 - Sigstore transparency entry: 1037259077
- Sigstore integration time:
-
Permalink:
Gerner-Ventures/gv-exp-specwright@9261d76dff2dc7e520f16e808a7678e44a66127c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Gerner-Ventures
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9261d76dff2dc7e520f16e808a7678e44a66127c -
Trigger Event:
push
-
Statement type:
File details
Details for the file gv_specwright-1.15.0-py3-none-any.whl.
File metadata
- Download URL: gv_specwright-1.15.0-py3-none-any.whl
- Upload date:
- Size: 257.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f269874fe594cbce61bf775e6896d3cf91e04ec0c4b7b9338629b0557bfc1bd
|
|
| MD5 |
28d3c5a428e7015b92a7f8dc88bf0483
|
|
| BLAKE2b-256 |
b1535039beb9760be2eda13abadb862734522df8766696f5559827f560f3cccc
|
Provenance
The following attestation bundles were made for gv_specwright-1.15.0-py3-none-any.whl:
Publisher:
publish.yml on Gerner-Ventures/gv-exp-specwright
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gv_specwright-1.15.0-py3-none-any.whl -
Subject digest:
3f269874fe594cbce61bf775e6896d3cf91e04ec0c4b7b9338629b0557bfc1bd - Sigstore transparency entry: 1037259162
- Sigstore integration time:
-
Permalink:
Gerner-Ventures/gv-exp-specwright@9261d76dff2dc7e520f16e808a7678e44a66127c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Gerner-Ventures
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9261d76dff2dc7e520f16e808a7678e44a66127c -
Trigger Event:
push
-
Statement type: