OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
Quotes → jobs → invoices → payments for field services and agencies.
Operations (8)
•
`service.client.create` (v1.0.0)
•
`service.quote.create` (v1.0.0)
•
`service.quote.accept` (v1.0.0)
•
`service.job.schedule` (v1.0.0)
•
`service.job.complete` (v1.0.0)
•
`service.invoice.issue` (v1.0.0)
•
`service.payment.record` (v1.0.0)
•
`service.job.list` (v1.0.0)
Events (6)
•
`service.quote.sent` (v1.0.0)
•
`service.quote.accepted` (v1.0.0)
•
`service.job.scheduled` (v1.0.0)
•
`service.job.completed` (v1.0.0)
•
`service.invoice.issued` (v1.0.0)
•
`service.payment.received` (v1.0.0)
Presentations (7)
•
`service-business-os.dashboard` (v1.0.0)
•
`service-business-os.client.list` (v1.0.0)
•
`service-business-os.quote.list` (v1.0.0)
•
`service-business-os.quote.detail` (v1.0.0)
•
`service-business-os.job.board` (v1.0.0)
•
`service-business-os.invoice.list` (v1.0.0)
•
`service-business-os.payment.list` (v1.0.0)
Source Definition
import { defineFeature } from '@lssm-tech/lib.contracts-spec';
export const ServiceBusinessFeature = defineFeature({
meta: {
key: 'service-business-os',
title: 'Service Business OS',
description:
'Quotes → jobs → invoices → payments for field services and agencies.',
domain: 'services',
owners: ['@service-os'],
tags: ['services', 'quotes', 'jobs', 'invoices', 'payments'],
stability: 'experimental',
version: '1.0.0',
},
operations: [
{ key: 'service.client.create', version: '1.0.0' },
{ key: 'service.quote.create', version: '1.0.0' },
{ key: 'service.quote.accept', version: '1.0.0' },
{ key: 'service.job.schedule', version: '1.0.0' },
{ key: 'service.job.complete', version: '1.0.0' },
{ key: 'service.invoice.issue', version: '1.0.0' },
{ key: 'service.payment.record', version: '1.0.0' },
{ key: 'service.job.list', version: '1.0.0' },
],
events: [
{ key: 'service.quote.sent', version: '1.0.0' },
{ key: 'service.quote.accepted', version: '1.0.0' },
{ key: 'service.job.scheduled', version: '1.0.0' },
{ key: 'service.job.completed', version: '1.0.0' },
{ key: 'service.invoice.issued', version: '1.0.0' },
{ key: 'service.payment.received', version: '1.0.0' },
],
presentations: [
{ key: 'service-business-os.dashboard', version: '1.0.0' },
{ key: 'service-business-os.client.list', version: '1.0.0' },
{ key: 'service-business-os.quote.list', version: '1.0.0' },
{ key: 'service-business-os.quote.detail', version: '1.0.0' },
{ key: 'service-business-os.job.board', version: '1.0.0' },
{ key: 'service-business-os.invoice.list', version: '1.0.0' },
{ key: 'service-business-os.payment.list', version: '1.0.0' },
],
presentationsTargets: [
{
key: 'service-business-os.dashboard',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'service-business-os.quote.list',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'service-business-os.invoice.list',
version: '1.0.0',
targets: ['react', 'markdown'],
},
],
capabilities: {
requires: [
{ key: 'identity', version: '1.0.0' },
{ key: 'audit-trail', version: '1.0.0' },
{ key: 'notifications', version: '1.0.0' },
{ key: 'files', version: '1.0.0' },
],
provides: [
{ key: 'quotes', version: '1.0.0' },
{ key: 'jobs', version: '1.0.0' },
{ key: 'invoices', version: '1.0.0' },
],
},
telemetry: [{ key: 'service-business-os.telemetry', version: '1.0.0' }],
jobs: [
{ key: 'service-business-os.job.schedule-dispatch', version: '1.0.0' },
{ key: 'service-business-os.job.invoice-reminder', version: '1.0.0' },
],
docs: [
'docs.examples.service-business-os',
'docs.examples.service-business-os.goal',
'docs.examples.service-business-os.usage',
'docs.examples.service-business-os.constraints',
],
});