Context
The repo at /Users/chris/Code/Apps/reportshq is an empty clone (only .git). Turn it into a running Stacks app and the repo foundation every other issue builds on.
Scope
- Scaffold via
./buddy new reportshq. Known snag on this machine: gitit's output is swallowed under thebuddy/bunx --bunwrapper and reports a bare "Failed to execute" - if that happens, runbun node_modules/@stacksjs/gitit/dist/bin/cli.js stacks reportshqdirectly. Scaffold into a temp dir and move contents into the existing clone ifbuddy newrefuses a non-empty target. - Local dev config: the scaffold's
.envdefaults to Postgres with bogus credentials; setDB_CONNECTION=sqlite+DB_DATABASE_PATH=database/stacks.sqlitefor local dev.SUDO_PASSWORDin.envenables the rpx HTTPS proxy (https://reportshq.localhost). - App identity:
APP_NAME=ReportsHQ, production URLreportshq.org, dev URLreportshq.localhost. Inconfig/cloud.ts, setproject.slug: 'reportshq'- never leave the template'sslug: 'stacks'(a tenant that keeps the template slug has overwritten another site's routing fragment before; see the 2026-08-07 outage note in loghq's sibling repos). .gitignoremust cover both/storage/cloud/and/.ts-cloud/(machine-local deploy state; repos with only one rule have committed stale server pins that pointed deploys at somebody else's box).- Port and adapt loghq's
AGENTS.mdhouse-style guide (/Users/chris/Code/Apps/loghq/AGENTS.md, ~18 KB, chapter-numbered and referenced from code comments) for ReportsHQ, and runbuddy setup:ai. - Tooling: pickier lint + gitlint hooks wired in
package.json,better-dxpresent withlinker = "hoisted"inbunfig.toml, nocatalog:protocol anywhere. - CI skeleton:
.github/workflows/ci.ymlrunning lint, typecheck, and tests on push/PR (deploy job comes in #21). - Initial conventional commits pushed to
main.
Acceptance
./buddy devserves the scaffolded app locally;buddy migrateruns (its final auth-table "guarantee" step throwingno such table: oauth_access_tokensis a known non-fatal)../buddy lint,./buddy typecheck,./buddy testall green in CI onmain.