launch.max becomes launch.models plus launch.limits (total, providers, exact provider/model). The launcher re-reads limits on every attempt. Settings and `mosaic limits` write through one locked, journaled organization writer. `mosaic limits migrate` is print-only. Candidate 00b84e311475f97ced0d9a9599fba23a28442971ed15d8d489d9422d84a8812e, Rocko packet4b6e50636, Filbert round 2 approve (comment 28542). Landing gate at0c56cc2d4: 23 suites green. Decision 123 go from Mos. Co-Authored-By: Claude Opus 5.5 <[email protected]>
154 lines
3.4 KiB
JSON
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|