asw/openspec/specs/site/spec.md
Ludo 5bf233348d
feat: add OpenSpec specs and changes for ASW restructure
Specs: repo-structure, 10 framework layer specs, packs, site.
Changes: repo-restructure (10 tasks), css-refactor (12 tasks),
legacy-import (proposal + triage categories).

Supersede docs/css-refactor-plan.md in favor of OpenSpec change.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 14:58:39 +02:00

52 lines
1.7 KiB
Markdown

# Spec: Site
Directory: `site/`
## Purpose
The ASW framework's own website. Serves as documentation site, demo platform, and living proof that the framework works. Currently built with the Hugo pack.
## Content Types
### Docs (from `../docs/`)
Framework documentation, mounted as Hugo content via module mount. Not duplicated — sourced from the engine-agnostic `docs/` directory.
### Articles (`content/articles/`)
Short-form writing about ASW concepts, patterns, and techniques. No TOC.
### Essays (`content/essays/`)
Long-form writing. TOC, description, wider reading measure.
### Notes (`content/notes/`)
Exported PKM vault notes. Session logs, diffs, status, tasks, wikilinks.
### Pages (`content/pages/`)
Static pages: about, etc.
## Engine
Currently Hugo. The site uses `packs/hugo/` as its base and adds:
- Site-specific layouts and overrides
- `hugo.toml` with module mounts
- Site-specific static assets
## Principle
The site is a consumer of the framework, not part of it. A different site could be built with `packs/flask/` or `packs/caddy/` using the same `docs/` and `dist/asw.css`. The framework does not depend on the site. The site depends on the framework.
## Scenarios
### Given a framework docs change
- **When** a markdown file in `docs/` is modified
- **Then** the site picks it up automatically via Hugo mount
- **And** no file in `site/` needs to change
### Given a CSS framework change
- **When** `src/layers/` is modified
- **Then** `dist/asw.css` is rebuilt
- **And** the site serves the updated CSS
### Given a site-only change (new article, essay)
- **When** content is added to `site/content/`
- **Then** only the site is affected
- **And** `src/`, `dist/`, `docs/` are untouched