Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ jobs:
persist-credentials: false

- name: Set up toolchain
uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.8.8
version: 2026.9.1

- name: Install dependencies
run: bun ci
Expand Down
21 changes: 20 additions & 1 deletion .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
{
"ignorePatterns": [".astro/**", ".superpowers/**", ".worktrees/**", "dist/**"]
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"endOfLine": "lf",
"ignorePatterns": [
".astro/**",
".resume/**",
".superpowers/**",
".worktrees/**",
"dist/**",
"tools/oxlint/anti-slop/**"
],
"insertFinalNewline": true,
"printWidth": 100,
"proseWrap": "preserve",
"semi": false,
"singleQuote": false,
"sortImports": true,
"sortPackageJson": { "sortScripts": true },
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false
}
43 changes: 43 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Website

Static Astro website deployed to Cloudflare Pages, with local résumé PDF generation.

<!-- harness-upgrade:v1:repository-map:begin -->

## Commands

Run from the repository root:

- `mise install && bun ci` installs the locked toolchain and dependencies.
- `bun run check:build` runs hooks, formatting, type checks, tests, and the site build.
- `bun run lint` checks code and GitHub workflows.
- `bun run format` formats project files.
- `bun run audit` checks dependency advisories. It requires registry access.
- `bun run preview` serves the built site.
- `bun run resume:pdf` regenerates both tracked résumé PDFs. Install Chromium first with `bunx --bun playwright install chromium`.

Bun runs project commands via `bunfig.toml`. Preserve the seven-day release-age policies and exact dependency pins.

## Source map

- `src/pages/`, `src/layouts/`, `src/components/`: routes and templates.
- `src/content/` and `src/content.config.ts`: Markdown collections and schemas.
- `src/data/`: page metadata and OG image layout.
- `src/plugins/remark-glow.ts`: Markdown transformations.
- `src/resume/`: résumé content and print layout.
- `scripts/resume/`: local browser rendering, PDF validation, and temporary files.
- `tools/oxlint/anti-slop/`: vendored lint rules. Preserve the upstream code and license.
- `public/fonts/`: private fonts. Build setup is documented in [README.md](README.md).

Build output in `dist/`, `.astro/`, and `.resume/` is generated. Regenerate tracked résumé PDFs only when requested or when résumé output intentionally changes.

## Code and prose

Keep the configured lint rules and limits. Discuss removals, relaxed options, and suppressions before changing them.

Use readonly inputs for read-only operations. The Markdown plugin's configured AST allowance permits intentional tree mutation. Keep sequential-await exceptions local to the operations that require ordering.

Use specific types and remove unnecessary assertions. Explain a remaining assertion's checked invariant with `SAFETY:`. Verify behavior through public interfaces instead of mocking module internals.

Keep prose concise. Describe the shipped behavior, commands, and constraints. Omit task narration, review history, obvious comments, and unnecessary headings. Keep dependency-update history in commits and PRs rather than the README.
<!-- harness-upgrade:v1:repository-map:end -->
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
## Development

```sh
mise install
bun install
bun run dev
```
Expand Down
22 changes: 13 additions & 9 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
// @ts-check
import { execSync } from "node:child_process";
import { defineConfig } from "astro/config";
import sitemap from "@astrojs/sitemap";
import { unified } from "@astrojs/markdown-remark";
import tailwindcss from "@tailwindcss/vite";
import remarkBreaks from "remark-breaks";
import remarkGlow from "./src/plugins/remark-glow.mjs";
import { execSync } from "node:child_process"

import { unified } from "@astrojs/markdown-remark"
import sitemap from "@astrojs/sitemap"
import tailwindcss from "@tailwindcss/vite"
import { defineConfig } from "astro/config"
import remarkBreaks from "remark-breaks"

import remarkGlow from "./src/plugins/remark-glow.ts"

const buildCommit = process.env["CF_PAGES_COMMIT_SHA"] ?? ""

const commitSha =
process.env.CF_PAGES_COMMIT_SHA || execSync("git rev-parse HEAD").toString().trim();
buildCommit === "" ? execSync("git rev-parse HEAD").toString().trim() : buildCommit

// https://astro.build/config
export default defineConfig({
Expand All @@ -32,4 +36,4 @@ export default defineConfig({
external: ["satori", "@resvg/resvg-js", "node:fs", "node:path"],
},
},
});
})
Loading