Skip to content

feat: Spec Studio — dual-format spec authoring (Guided/Markdown/YAML/Read), BYOK AI draft, lifecycle, versioning - #33

Merged
QuintinBotes merged 20 commits into
mainfrom
finalise-spec-studio
Jul 9, 2026
Merged

feat: Spec Studio — dual-format spec authoring (Guided/Markdown/YAML/Read), BYOK AI draft, lifecycle, versioning#33
QuintinBotes merged 20 commits into
mainfrom
finalise-spec-studio

Conversation

@QuintinBotes

Copy link
Copy Markdown
Owner

The full Spec Studio: author a spec once, edit it four ways, and drive it through the SDD lifecycle.

  • Dual-format enginespec.mdmanifest.yaml round-trip over the canonical SpecManifest (parse_spec_md/render_spec_md + load/dump_manifest), kept in sync on save from either format.
  • Four editing modesGuided (friendly blocks, dropdown-linked criteria, coverage meter), Markdown (raw spec.md, live structure/traceability), YAML (schema-validated manifest.yaml), Read (clean prose + approval gate).
  • BYOK AI draftPOST /spec/draft streams a spec from a one-sentence goal using your model, seeded with the project constitution.
  • Full lifecycle — Describe → Refine → Approve → Build → Verify stepper wired to the existing endpoints.
  • Versioning + diff, external import (md/yaml), flexible acceptance-criterion styles.
  • Endpoints: GET /projects/{id}/specs, GET/PUT /spec/specs/{id}/markdown + /manifest, GET /spec/constitution/{id}, plus web client methods; migration 0032 for spec versions.

Gate (green): ruff/format clean, mypy 0 (493 files), pytest 3,980 passed / 53 skipped, bandit + gitleaks clean; web lint 0 errors / build (20 routes) / 673 web tests / typecheck clean.

Parked follow-ups (documented in docs/ADAPTIVE_SPEC_PROGRESS.md): Reject/Request-changes need backend persistence (only approve exists today); real-time co-editing is design-only (Yjs chosen) — the next chunk.

🤖 Generated with Claude Code

Forge Swarm and others added 17 commits July 8, 2026 19:36
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e re-verified

Records the 14-slice Spec Studio build (ss-parser through ss-criteria) in
docs/ADAPTIVE_SPEC_PROGRESS.md alongside the existing Adaptive Orchestration
ledger: what shipped, refuted/repaired counts per slice, what's parked
(reject/request-changes persistence, real-time co-editing still design-only),
and a full whole-repo gate re-verification (ruff, ruff-format, mypy, full
pytest on real pgvector — 3980 passed/0 failed — bandit, gitleaks, web
lint/build/test/typecheck, and an isolated upgrade+downgrade check of the new
spec_version migration). Updates docs/spec-studio/DESIGN.md's status/§2.2
table to reflect the dual-format round-trip + editor as built, leaving only
real-time co-editing (§4, Yjs) as the remaining design-only item.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Comment thread apps/api/forge_api/services/spec_import_service.py Fixed
Comment thread apps/api/forge_api/services/spec_import_service.py Fixed
Comment thread apps/api/forge_api/services/spec_import_service.py Fixed
@QuintinBotes QuintinBotes self-assigned this Jul 9, 2026
Forge Swarm added 3 commits July 9, 2026 09:31
…re vuln fixtures) + helm-kind chart deps

- chunking._HEADING_RE: greedy capture, strip ATX hashes in code (no lazy+trailing overlap)
- saml._safe_next: reject backslash/CRLF/tab so /\\host can't become //host
- codeql: paths-ignore tests/security/fixtures (deliberate planted-vuln samples)
- helm-kind e2e: helm repo add bitnami + helm dependency build before install
[ \t]+(.+) still overlapped (. matches tab/space) → backtracking. Anchoring the capture at \S (non-whitespace) makes the separator and capture disjoint: verified linear (200k-tab input matches in ~2.6ms).
@QuintinBotes
QuintinBotes merged commit b7fc950 into main Jul 9, 2026
21 checks passed
@QuintinBotes
QuintinBotes deleted the finalise-spec-studio branch July 9, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants