diff --git a/.siax/template-pin.json b/.siax/template-pin.json new file mode 100644 index 00000000..3f209a78 --- /dev/null +++ b/.siax/template-pin.json @@ -0,0 +1,17 @@ +{ + "schemaVersion": "siax.template-pin/v1", + "repo": "accounted", + "profiles": [ + "base", + "node" + ], + "templateRepo": "sax3l/siax-templates", + "templateRef": "1feb97cd1d6da58bb4b420d860109285c47c741d", + "pinnedAt": "2026-09-15T02:40:00Z", + "pins": { + "mise": "task-entry i mise.toml (repot rot)", + "node": "22", + "lefthook": "1.x (aktiveras med npx lefthook install)" + }, + "notes": "Genererad ur toolchain-discovery 2026-09-15 (siax-automation)." +} diff --git a/AGENTS.md b/AGENTS.md index 31a13f1c..c848926e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,3 +34,25 @@ The files below are the shared source of truth for path-specific guidance. Claud - `.claude/rules/database.md`: migration rules, key tables/RPCs/triggers, pg-real (`supabase/migrations/**`) - `.claude/rules/mcp-server.md`: MCP tool authoring, staged-operation pattern, OAuth 2.1 connector auth - `.claude/rules/bookkeeping.md`: BAS accounts, VAT treatments/rutor, `lib/core/` services + + +## SIAX toolchain-kontrakt (2026-09-15, W4-slutvåg) + +- `mise.toml` = task-entry (`setup/check/verify/build/release`) — genererad ur + toolchain-discovery (observerade data). Ändra inte betydelsen av de fem tasks. +- Package manager: **npm**. +- `lefthook.yml` = git hooks; aktiveras med `npx lefthook install`. +- Pinning: `.siax/template-pin.json` (`siax.template-pin/v1`). +- Förbjudna duplicater: just/Task/Nx, Cypress, OpenProject/Leantime/AppFlowy, + Keycloak, SigNoz. +- Not: gaterna heter check:types/check:lint. + +### Snabbkommandon + +```sh +mise install +mise run setup # npm ci --no-audit --no-fund +mise run check +mise run verify +mise run build +``` diff --git a/README.md b/README.md index fd3cb800..b4d4cd3c 100644 --- a/README.md +++ b/README.md @@ -96,3 +96,25 @@ All commits require a [DCO sign-off](DCO) (`git commit -s`). ## License [AGPL-3.0-or-later](LICENSE) with an **extension exception**: third-party extensions that interact solely through the documented Extension API may be licensed under any terms, including proprietary. See [LICENSE](LICENSE) for details and [NOTICE](NOTICE) for third-party attributions. + + +## SIAX toolchain-kontrakt (2026-09-15, W4-slutvåg) + +- `mise.toml` = task-entry (`setup/check/verify/build/release`) — genererad ur + toolchain-discovery (observerade data). Ändra inte betydelsen av de fem tasks. +- Package manager: **npm**. +- `lefthook.yml` = git hooks; aktiveras med `npx lefthook install`. +- Pinning: `.siax/template-pin.json` (`siax.template-pin/v1`). +- Förbjudna duplicater: just/Task/Nx, Cypress, OpenProject/Leantime/AppFlowy, + Keycloak, SigNoz. +- Not: gaterna heter check:types/check:lint. + +### Snabbkommandon + +```sh +mise install +mise run setup # npm ci --no-audit --no-fund +mise run check +mise run verify +mise run build +``` diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 00000000..caacb303 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,14 @@ +# SIAX toolchain-kontrakt v0.1.0 — Lefthook för accounted. +# Aktiveras med: npx lefthook install. Hook-skip ersätter aldrig CI-gates. + +pre-commit: + parallel: true + commands: + check: + run: mise run check + +pre-push: + parallel: false + commands: + verify: + run: mise run verify diff --git a/mise.toml b/mise.toml new file mode 100644 index 00000000..55282f51 --- /dev/null +++ b/mise.toml @@ -0,0 +1,36 @@ +# SIAX toolchain-kontrakt v0.1.0 (sax3l/siax-templates @ SHA-pinad i +# .siax/template-pin.json) — accounted-instans. Genererad ur toolchain-discovery +# (observerade data: packageManager + CI-enforced scripts, 2026-09-15). +# mise är task-ENTRY; gate-logiken bor i .gitea/workflows/ (repots egen CI). + +[tools] +node = "22" +[tasks.setup] +description = "Installera beroenden (frozen lockfile)" +run = "set -eu; npm ci --no-audit --no-fund" + +[tasks.check] +description = "Snabba deterministiska kontroller (spegler CI-enforced gates)" +run = ''' +set -eu + +''' + +[tasks.verify] +description = "Full svit enligt repots egna scripts" +run = ''' +set -eu +npm run test +''' + +[tasks.build] +description = "Bygg (repots build-script)" +run = "set -eu; npm run build" + +[tasks.release] +description = "Verifiera innan release; deploy/release-vägen ägs av repots egna workflows" +run = ''' +set -eu +npm run test +echo "Release-vägen: .gitea/workflows/ äger deployen. Byt aldrig förbi approval." >&2 +'''