Files
stack/packages/organization/examples/mosaic-stack.example.json
jason.woltje a8d9eecf65 organization: move packages/business to packages/organization (rename r2 stage B1)
git mv packages/business -> packages/organization (@mosaic/organization). The
old package stays as one-line re-export shims of each moved module, with
src/business.mjs re-exporting src/organization-config.mjs and src/cli.mjs
forwarding to the moved executable. BusinessError is OrganizationConfigError
(one constructor, name kept BusinessError); OrganizationError stays distinct.
The bus adapter gains organization-context.mjs (busOrganization), with
business.mjs (busBusiness) as the same function.

Import consumers, manifests, the lockfile, scripts/mosaic, stack-copy.sh
COPY_PATHS (both roots), seat sandbox RUNNER_FILES and the copy closure
walker (organization-imports.mjs, both roots required) move to the new path.
v1 serialization, v1 writers and the stage A fixtures are unchanged; the stage
A contract tests stay where they were and pass as before.
2026-11-09 11:47:48 -06:00

154 lines
3.4 KiB
JSON

{
"businessVersion": 1,
"id": "mosaic-stack",
"human": "jason",
"arbiters": {
"delivery": "pm",
"technical": "cto"
},
"projects": {
"stack": {
"root": "/mnt/storage/src/mosaic-stack"
}
},
"vars": {
"tracker.baseUrl": "http://127.0.0.1:3456",
"gitea.baseUrl": "https://git.mosaicstack.dev"
},
"tracker": {
"sync": {
"bot": "bot-mosaic-stack-sync",
"botId": 0,
"credentials": {
"vikunja": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/sync-vikunja.token",
"expires": "YYYY-MM-DD"
}
}
},
"labels": {}
},
"roles": {
"pm": {
"definition": "pm",
"holder": "sage",
"tracker": {
"bot": "bot-mosaic-stack-pm",
"botId": 0
},
"credentials": {
"gitea": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/pm-gitea.token",
"rotateBy": "YYYY-MM-DD"
},
"vikunja": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/pm-vikunja.token",
"expires": "YYYY-MM-DD"
}
},
"vars": {
"model": "opus"
}
},
"cto": {
"definition": "cto",
"holder": "darkwing",
"tracker": {
"bot": "bot-mosaic-stack-cto",
"botId": 0
},
"credentials": {
"gitea": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/cto-gitea.token",
"rotateBy": "YYYY-MM-DD"
},
"vikunja": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/cto-vikunja.token",
"expires": "YYYY-MM-DD"
}
},
"vars": {
"model": "opus"
}
},
"coder": {
"definition": "coder",
"tracker": {
"bot": "bot-mosaic-stack-coder",
"botId": 0
},
"credentials": {
"gitea": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/coder-gitea.token",
"rotateBy": "YYYY-MM-DD"
},
"vikunja": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/coder-vikunja.token",
"expires": "YYYY-MM-DD"
}
},
"vars": {
"model": "sonnet"
}
},
"reviewer": {
"definition": "reviewer",
"tracker": {
"bot": "bot-mosaic-stack-reviewer",
"botId": 0
},
"credentials": {
"gitea": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/reviewer-gitea.token",
"rotateBy": "YYYY-MM-DD"
},
"vikunja": {
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/reviewer-vikunja.token",
"expires": "YYYY-MM-DD"
}
},
"vars": {
"model": "opus"
}
},
"chief": {
"definition": "chief-of-staff",
"vars": {
"model": "opus"
}
},
"assistant": {
"definition": "assistant",
"holder": "mos",
"vars": {
"model": "opus"
}
}
},
"launch": {
"by": "chief",
"instances": [
"coder",
"reviewer"
],
"models": {
"opus": {
"provider": "your-provider",
"model": "claude-opus-5-5"
},
"sonnet": {
"provider": "your-provider",
"model": "claude-sonnet-5-5"
}
},
"limits": {
"models": {
"your-provider": {
"claude-opus-5-5": 4,
"claude-sonnet-5-5": 4
}
}
}
}
}