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>
115 lines
4.6 KiB
Markdown
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.
|