asw/openspec/changes/repo-restructure/tasks.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

115 lines
4.6 KiB
Markdown

# Tasks: Repository Restructure
## Task 1 — Create directory skeleton
**Files:** (new directories only)
**Action:**
- Create `src/`, `src/layers/`, `src/lab/`
- Create `dist/`
- Create `vendor/open-props/`
- Create `site/`
- Create `examples/`
**Acceptance:** Directories exist. No files moved yet. Build still passes from current layout.
---
## Task 2 — Move CSS source to src/
**Files:** `assets/css/layers/*.css``src/layers/`, `assets/css/main.css``src/main.css`
**Action:**
- `git mv assets/css/layers/ src/layers/`
- `git mv assets/css/main.css src/main.css`
- Update `@import` paths in `src/main.css` if needed (should be relative, likely unchanged)
**Acceptance:** `src/layers/` contains all 11 CSS files. `src/main.css` imports them. `assets/css/` is gone.
**Note:** Site will be temporarily broken until Hugo mounts are configured (Task 5).
---
## Task 3 — Set up vendor/
**Files:** `vendor/open-props/`, `vendor/README.md`
**Action:**
- Copy `node_modules/open-props/open-props.min.css``vendor/open-props/`
- Copy `node_modules/open-props/media.min.css``vendor/open-props/`
- Create `vendor/open-props/VERSION` with package version and date
- Create `vendor/README.md` explaining what's vendored and how to update
- Remove `static/vendor/` (old location)
**Acceptance:** `vendor/open-props/` contains the two CSS files + VERSION. `static/vendor/` is gone.
---
## Task 4 — Move Hugo files to site/
**Files:** `content/`, `layouts/`, `archetypes/`, `hugo.toml`, `hugo_stats.json`
**Action:**
- `git mv content/ site/content/`
- `git mv layouts/ site/layouts/`
- `git mv archetypes/ site/archetypes/`
- `git mv hugo.toml site/hugo.toml`
- `git mv hugo_stats.json site/hugo_stats.json`
- Move site-specific static files: `static/palette-test.html``site/static/`
- Move `static/asw.css``dist/asw.css` (this is the built output)
**Acceptance:** All Hugo content/layout/config files are in `site/`. Root has no Hugo files.
---
## Task 5 — Configure Hugo module mounts
**Files:** `site/hugo.toml`
**Action:** Add module mounts:
- `../src``assets/css` (framework CSS in Hugo's asset pipeline)
- `../docs``content/docs` (framework docs as site content)
- `../vendor/open-props``assets/css/open-props` (Open Props in asset pipeline)
- `static``static` (site's own static files)
**Acceptance:** `hugo server --source site/` builds successfully. All pages render. CSS loads correctly.
---
## Task 6 — Build dist/asw.css from new paths
**Files:** `postcss.config.js`, `package.json`
**Action:**
- Update PostCSS config if paths changed
- Run: `npx postcss src/main.css -o dist/asw.css`
- Run: `npx postcss src/main.css -o dist/asw.min.css`
- Verify output matches previous `static/asw.css`
- Add npm scripts to `package.json`: `"build": "postcss src/main.css -o dist/asw.css"`
**Acceptance:** `dist/asw.css` exists and is equivalent to the previous build. `npm run build` works.
---
## Task 7 — Restructure docs/
**Files:** `docs/`
**Action:**
- Existing docs stay: `context.md`, `css-refactor-plan.md`, `css-html-cleanup-todo.md`, `frontmatter.md`, `template-h1-title.md`
- Verify Hugo mount serves them at `content/docs/`
- Add `docs/llms.txt` (move from legacy or create)
- Add `docs/lineage.md` placeholder (Pico absorption story, Open Props relationship)
**Acceptance:** Framework docs are all in `docs/`. Hugo renders them as site pages via mount.
---
## Task 8 — Create examples/ from site content
**Files:** `examples/`
**Action:**
- Identify existing pages that are pure component/layout demos
- Create standalone HTML versions in `examples/` that load `dist/asw.css`
- Organize into `examples/components/`, `examples/layout/`, `examples/charts/`, `examples/vault/`
**Acceptance:** At least 3 example files exist, each standalone and openable in a browser.
---
## Task 9 — Update .gitignore and clean up
**Files:** `.gitignore`, root directory
**Action:**
- Update `.gitignore` for new paths
- Remove empty `assets/` directory if still present
- Remove `static/css/layers/` (dev-mode output, will be regenerated)
- Verify no orphaned files remain in old locations
**Acceptance:** `git status` is clean. No files in old locations. `.gitignore` covers `node_modules/`, `site/public/`, `site/resources/`.
---
## Task 10 — Verify full build cycle
**Files:** (none modified, verification only)
**Action:**
- `npm run build``dist/asw.css` generated
- `hugo --source site/``site/public/` generated
- Spot-check 3-4 pages visually
- Verify `docs/` content appears in site
- Verify CSS loads and renders correctly
**Acceptance:** Full build passes. Site looks identical to pre-restructure. dist/ output is valid.