ContractSpec docs

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.

service-business-os

Quotes → jobs → invoices → payments for field services and agencies.

  • Type: feature
  • Version: 1.0.0
  • Stability: experimental
  • Owners: @service-os
  • Tags: services, quotes, jobs, invoices, payments
  • field.key.label
    service-business-os
    field.version.label
    1.0.0
    field.type.label
    feature
    field.title.label
    service-business-os
    field.description.label

    Quotes → jobs → invoices → payments for field services and agencies.

  • Type: feature
  • Version: 1.0.0
  • Stability: experimental
  • Owners: @service-os
  • Tags: services, quotes, jobs, invoices, payments
  • field.tags.label
    services,quotes,jobs,invoices,payments
    field.owners.label
    @service-os
    field.stability.label
    experimental

    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',
    	],
    });