# 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.