feat(governance): add siax.repo.v3.json (P003) + companion siax.repo.json (v2)
masterplan-lock / check (push) Successful in 9s
masterplan-lock / check (push) Successful in 9s
First siax manifest for this repo (none existed). Schema-validated against siax-standard's siax.repo.v3.schema.json and siax.repo.schema.json (both valid:true, zero errors), and siax-doctor's `repo` command confirms REPO-16/REPO-03/REPO-04 all PASS. Fields reflect the repo's actual current state, not aspiration: - category: business, tier: satellite (adopted external AGPL-3.0-or-later OSS product, upstream Jakob Wennberg/gnubok; not a SIAX-native platform capability -- same pattern as crm-siax's Twenty CRM fork). - operationalState: planned (imported into sax3l 2026-09-10, governance scaffold only so far -- PLAN/MASTERPLAN_INDEX.md's X-120 is still at SCAFFOLDED, no SIAX-operated deployment/domain/node exists yet). - replacesSaaS: [Fortnox] per Simon's 2026-09-14 decision (ERPNext/Accounted, not Fortnox). - licenses.approved: false (AGPL-3.0-or-later has real network-copyleft implications for a self-hosted operator; no compliance sign-off found). - decoupled: true, as the v2 schema's business-category rule requires and as this repo's actual architecture is (no @siax/* deps, consumes: []). - appId: null with a written justification (no CL0UD APP_REGISTRY entry). Pure addition: two new root-level JSON files, nothing else touched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"$schema": "https://git.siax.io/sax3l/siax-standard/raw/branch/main/schema/siax.repo.schema.json",
|
||||
"repo": "ACCOUNTED",
|
||||
"category": "business",
|
||||
"subcategory": "bookkeeping-engine",
|
||||
"appId": null,
|
||||
"appIdJustification": "No SIAX appId registered. Accounted is an adopted external open-source Swedish bookkeeping product (package.json name \"erp-base\", upstream copyright Jakob Wennberg / gnubok, AGPL-3.0-or-later) brought into the sax3l org on 2026-09-10 as a finance capability alongside ERPNext for engagement bookkeeping (see Simon's 2026-09-14 decision: ERPNext/Accounted, not Fortnox). It is not a SIAX-branded 0-suffix platform product, so it has no CL0UD APP_REGISTRY entry; that assignment is a separate, not-yet-made decision.",
|
||||
"owner": "SIAX Technology AB",
|
||||
"lifecycle": "active",
|
||||
"operationalState": "planned",
|
||||
"gitHost": "git.siax.io",
|
||||
"node": null,
|
||||
"domains": [],
|
||||
"consumes": [],
|
||||
"consumedBy": [],
|
||||
"replacesSaaS": ["Fortnox"],
|
||||
"children": [
|
||||
{
|
||||
"path": "app",
|
||||
"purpose": "Next.js 16 App Router: UI, API route handlers (app/api/**), cron endpoints, and the OAuth 2.1 MCP connector surface (app/api/mcp-oauth)",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "lib/core/bookkeeping",
|
||||
"purpose": "Double-entry bookkeeping engine: voucher commit/storno, period locks, correction chains, enforced by Postgres triggers per Bokforingslagen",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "packages/accounted-mcp",
|
||||
"purpose": "Current-generation MCP tool package (150+ bookkeeping tools) for agent access; additive successor to gnubok-mcp",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "packages/gnubok-mcp",
|
||||
"purpose": "Legacy-named MCP compatibility package kept for existing MCP installs/API-key prefixes (gnubok_sk_/gnubok_inv_); never to be renamed per CLAUDE.md",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "extensions",
|
||||
"purpose": "Opt-in extension system (AI categorization, receipt OCR, email/calendar, bank/Peppol/Skatteverket connectors); core code must never import from here",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "supabase/migrations",
|
||||
"purpose": "Postgres schema migrations, including the legally-required enforcement triggers (migration 017) and RLS policies",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "claude-plugin",
|
||||
"purpose": "Claude Code plugin distributing approval-gated workflow skills (/accounted:bookkeep, /accounted:vat, /accounted:year-end)",
|
||||
"lifecycle": "active"
|
||||
}
|
||||
],
|
||||
"capabilityPrefix": "accounted",
|
||||
"packageName": "erp-base",
|
||||
"decoupled": true
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"$schema": "https://git.siax.io/sax3l/siax-standard/raw/branch/main/schema/siax.repo.v3.schema.json",
|
||||
"standardVersion": "3.0",
|
||||
"repo": "ACCOUNTED",
|
||||
"tier": "satellite",
|
||||
"category": "business",
|
||||
"subcategory": "bookkeeping-engine",
|
||||
"appId": null,
|
||||
"appIdJustification": "No SIAX appId registered. Accounted is an adopted external open-source Swedish bookkeeping product (package.json name \"erp-base\", upstream copyright Jakob Wennberg / gnubok, AGPL-3.0-or-later) brought into the sax3l org on 2026-09-10 as a finance capability alongside ERPNext for engagement bookkeeping (see Simon's 2026-09-14 decision: ERPNext/Accounted, not Fortnox). It is not a SIAX-branded 0-suffix platform product, so it has no CL0UD APP_REGISTRY entry; that assignment is a separate, not-yet-made decision.",
|
||||
"owner": "SIAX Technology AB",
|
||||
"lifecycle": "active",
|
||||
"operationalState": "planned",
|
||||
"gitHost": "git.siax.io",
|
||||
"canonicalRemote": "https://git.siax.io/sax3l/accounted.git",
|
||||
"mirrors": [
|
||||
{
|
||||
"host": "github.com",
|
||||
"url": "https://github.com/erp-mafia/accounted.git",
|
||||
"role": "mirror",
|
||||
"direction": "push-from-canonical"
|
||||
}
|
||||
],
|
||||
"node": null,
|
||||
"domains": [],
|
||||
"consumes": [],
|
||||
"consumedBy": [],
|
||||
"replacesSaaS": ["Fortnox"],
|
||||
"children": [
|
||||
{
|
||||
"path": "app",
|
||||
"purpose": "Next.js 16 App Router: UI, API route handlers (app/api/**), cron endpoints, and the OAuth 2.1 MCP connector surface (app/api/mcp-oauth)",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "lib/core/bookkeeping",
|
||||
"purpose": "Double-entry bookkeeping engine: voucher commit/storno, period locks, correction chains, enforced by Postgres triggers per Bokforingslagen",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "packages/accounted-mcp",
|
||||
"purpose": "Current-generation MCP tool package (150+ bookkeeping tools) for agent access; additive successor to gnubok-mcp",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "packages/gnubok-mcp",
|
||||
"purpose": "Legacy-named MCP compatibility package kept for existing MCP installs/API-key prefixes (gnubok_sk_/gnubok_inv_); never to be renamed per CLAUDE.md",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "extensions",
|
||||
"purpose": "Opt-in extension system (AI categorization, receipt OCR, email/calendar, bank/Peppol/Skatteverket connectors); core code must never import from here",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "supabase/migrations",
|
||||
"purpose": "Postgres schema migrations, including the legally-required enforcement triggers (migration 017) and RLS policies",
|
||||
"lifecycle": "active"
|
||||
},
|
||||
{
|
||||
"path": "claude-plugin",
|
||||
"purpose": "Claude Code plugin distributing approval-gated workflow skills (/accounted:bookkeep, /accounted:vat, /accounted:year-end)",
|
||||
"lifecycle": "active"
|
||||
}
|
||||
],
|
||||
"runtime": {
|
||||
"language": "typescript",
|
||||
"node": ">=20",
|
||||
"framework": "next",
|
||||
"packageManager": "npm"
|
||||
},
|
||||
"canonical": true,
|
||||
"parentRepo": null,
|
||||
"capabilities": [],
|
||||
"surfaces": ["ui", "api", "mcp"],
|
||||
"contracts": {},
|
||||
"identity": {
|
||||
"workloadIdentity": false,
|
||||
"authProvider": "supabase",
|
||||
"tenantScoped": true
|
||||
},
|
||||
"persistence": {
|
||||
"stateful": true,
|
||||
"database": "postgres",
|
||||
"storage": "other"
|
||||
},
|
||||
"deployment": {
|
||||
"node": null,
|
||||
"dedicated": false,
|
||||
"environments": []
|
||||
},
|
||||
"observability": {
|
||||
"health": true,
|
||||
"ready": false,
|
||||
"metrics": false,
|
||||
"otel": false
|
||||
},
|
||||
"reliability": {
|
||||
"slo": false,
|
||||
"backupFrequency": "none",
|
||||
"provenRestore": false,
|
||||
"rollback": false
|
||||
},
|
||||
"engines": ["postgres", "supabase", "redis"],
|
||||
"licenses": {
|
||||
"spdx": "AGPL-3.0-or-later",
|
||||
"approved": false
|
||||
},
|
||||
"productionEvidence": {
|
||||
"verified": false
|
||||
},
|
||||
"decoupled": true,
|
||||
"packageName": "erp-base"
|
||||
}
|
||||
Reference in New Issue
Block a user