feat: migrate CLAUDE.md content to OpenSpec specs and initialize workflow

Move project description and tech stack research from CLAUDE.md into
openspec/specs/project/ and openspec/specs/stack/. Slim CLAUDE.md to a
pointer file. Populate config.yaml with project context. Add OpenSpec
CLI skills and commands.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
local
2026-04-04 01:23:13 +01:00
parent 7dd4243f01
commit a462b7dbc7
26 changed files with 3132 additions and 162 deletions

View File

@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-04-03

View File

@@ -0,0 +1,33 @@
## Context
CLAUDE.md is a monolithic file containing project identity, tech stack research, and stale GSD workflow sections. OpenSpec is now initialized and provides a structured home for this content as specs.
## Goals / Non-Goals
**Goals:**
- Move project description and constraints into `openspec/specs/project/spec.md`
- Move technology stack research into `openspec/specs/stack/spec.md`
- Populate `openspec/config.yaml` context so AI agents get project context when creating artifacts
- Reduce CLAUDE.md to a slim file that points to OpenSpec for project knowledge
**Non-Goals:**
- Rewriting or editing the migrated content (faithful move, not a rewrite)
- Creating conventions or architecture specs (those are still empty placeholders)
- Changing any application code
## Decisions
### Decision 1: Spec file format
The main specs in `openspec/specs/` will use a prose/reference format (not the WHEN/THEN delta format). The delta specs in the change use WHEN/THEN for requirements tracking, but the actual spec content is the migrated prose — tables, lists, and all.
### Decision 2: CLAUDE.md post-migration content
CLAUDE.md will retain only:
- A one-line project summary
- A pointer to `openspec/specs/` for project knowledge
- Any workflow instructions specific to Claude Code (not project specs)
### Decision 3: config.yaml context
The `context` field in `openspec/config.yaml` will get a brief project summary and tech stack headline, so artifact generation has baseline context without reading full specs.

View File

@@ -0,0 +1,27 @@
## Why
CLAUDE.md currently holds all project knowledge — description, constraints, and a large tech stack research block. With OpenSpec initialized, this content belongs in `openspec/specs/` where it can be managed as proper specs, referenced by changes, and won't conflict with CLAUDE.md's role as a slim workflow/instruction file.
## What Changes
- Extract project description and constraints into a `project` spec
- Extract full technology stack research into a `stack` spec
- Populate `openspec/config.yaml` with project context
- Slim CLAUDE.md down to workflow instructions with pointers to OpenSpec
- Remove stale GSD placeholder sections (conventions, architecture, profile)
## Capabilities
### New Capabilities
- `project`: Project identity, core value statement, and non-negotiable constraints
- `stack`: Technology stack decisions — packages, versions, alternatives, patterns, compatibility, and sources
### Modified Capabilities
<!-- None — no existing specs yet -->
## Impact
- `CLAUDE.md`: Reduced from ~147 lines to a slim pointer file
- `openspec/specs/project/spec.md`: New file with project identity
- `openspec/specs/stack/spec.md`: New file with stack research
- `openspec/config.yaml`: Updated with project context

View File

@@ -0,0 +1,24 @@
## ADDED Requirements
### Requirement: Project identity
The project spec SHALL contain the project name, a description paragraph, and a core value statement that communicates the project's dual purpose: working AI chat interface and Blazor learning journey.
#### Scenario: Project description present
- **WHEN** an AI agent or developer reads the project spec
- **THEN** they find the project name ("Chat Agent WebApp"), a description of what the app does, and the core value statement
### Requirement: Project constraints
The project spec SHALL enumerate all non-negotiable constraints that govern technical decisions across the project.
#### Scenario: Constraints enumerated
- **WHEN** a decision is made about technology, architecture, or approach
- **THEN** the project spec provides the authoritative list of constraints to check against:
- Tech stack: .NET / C# / Blazor WebAssembly
- LLM provider: OpenAI GPT API
- Storage: JSON files on local disk
- Architecture: WASM client + backend API (API key stays server-side)
- Code style: Every Blazor concept introduced MUST have inline comments explaining what it does and why

View File

@@ -0,0 +1,51 @@
## ADDED Requirements
### Requirement: Core technology stack
The stack spec SHALL document the recommended core technologies with version, purpose, and rationale for each.
#### Scenario: Core stack documented
- **WHEN** a developer needs to add or update a dependency
- **THEN** the stack spec provides the authoritative record of: .NET 9 SDK, Blazor WebAssembly Standalone, ASP.NET Core Web API, C# 13, OpenAI SDK 2.9.1, Markdig 1.1.1, MudBlazor 9.2.0, and System.Text.Json
### Requirement: Supporting libraries and tools
The stack spec SHALL document supporting libraries, development tools, and installation notes.
#### Scenario: Supporting libraries referenced
- **WHEN** a developer evaluates adding a new dependency
- **THEN** the stack spec lists supporting libraries with guidance on when to use them (e.g., Microsoft.Extensions.AI — skip for v1)
### Requirement: Alternatives and exclusions
The stack spec SHALL document considered alternatives and explicitly excluded technologies with rationale.
#### Scenario: Alternative considered
- **WHEN** a developer proposes an alternative package or approach
- **THEN** the stack spec provides a record of alternatives already evaluated and why the current choice was made
#### Scenario: Excluded technology referenced
- **WHEN** a developer considers using a technology on the exclusion list
- **THEN** the stack spec explains why it was excluded and what to use instead
### Requirement: Stack patterns
The stack spec SHALL document implementation patterns that govern how stack technologies are used together (streaming, storage, markdown rendering).
#### Scenario: Pattern referenced during implementation
- **WHEN** a developer implements streaming, storage, or markdown rendering
- **THEN** the stack spec provides the canonical pattern to follow
### Requirement: Version compatibility matrix
The stack spec SHALL maintain a compatibility matrix and list of authoritative sources for version decisions.
#### Scenario: Compatibility check
- **WHEN** a package version is being upgraded
- **THEN** the stack spec provides the compatibility matrix to verify cross-package compatibility

View File

@@ -0,0 +1,16 @@
## 1. Create main specs
- [x] 1.1 Create `openspec/specs/project/spec.md` with project description, core value, and constraints from CLAUDE.md
- [x] 1.2 Create `openspec/specs/stack/spec.md` with full technology stack content from CLAUDE.md
## 2. Update config
- [x] 2.1 Populate `openspec/config.yaml` context field with project summary and tech stack headline
## 3. Slim down CLAUDE.md
- [x] 3.1 Replace CLAUDE.md contents with slim pointer file
## 4. Verify
- [x] 4.1 Confirm no content was lost — all substantive information is in specs