Linen

Contract

What Linen is being built to do

Every clause of the product Linen is building toward, and how much of it the code does today. Judged from the code and tests, not from plans.

11 of 138 clauses done

  • 11 done
  • 90 partial
  • 37 missing

Judged at commit 9af1441 ·

How statuses are judged

Published clauses

4 done · 20 partial · 0 missing

of 24

Target and push further

7 done · 70 partial · 37 missing

of 114

Product target

Category
IT service management (ITSM) / employee service desk
Replaces
ServiceNow ITSM, Freshservice, Jira Service Management
Must also beat
Serval, Console, Atomicwork
First buyer
A US company of 50 to 500 people whose IT team runs employee help, access, onboarding and offboarding, devices and changes in Freshservice, Jira Service Management or ServiceNow ITSM; prices, budgets and asset values in USD, US time zones and federal holidays, W-2 employees and 1099 contractors

Progress by area

19 areas

Published · 4 areas

Target and push further · 15 areas

All clauses

ClauseTitleStatusEvidence or gap
Retained employee service floor 0 done · 7 partial · 0 missing
E1publishedHelp and incidentsPartialsrc/features/work/core.tssrc/features/work/intake.tstests/ui/browser.mjstests/work/runtime.mjsGap: Slack/Teams intake missing; mail intake untested by a public-door test.
E2publishedAccess, device and software requestsPartialsrc/features/work/requests.tssrc/features/execution/connectors.tstests/ui/connected-request.mjsGap: Effects only through Microsoft Graph fixtures; no MDM software install verified on the device.
E3publishedJoin, move and leavePartialsrc/features/work/lifecycle.tssrc/features/work/processor.tstests/ui/connected-lifecycle.mjstests/work/runtime.mjsGap: No HRIS connector.
E4publishedCustody and contextPartialsrc/features/work/resources.tstests/ui/custody-journey.mjsGap: No MDM feed.
E5publishedShared incidents and problemsPartialsrc/features/services/incidents.tstests/ui/connected-change.mjstests/services/run.mjsGap: No live monitoring connector; provider, hosted and owner acceptance unproven.
E6publishedControlled changesPartialsrc/features/services/changes.tstests/services/integration.mjstests/ui/connected-change.mjsGap: No live provider change execution; hosted and owner acceptance unproven.
E7publishedKnowledge and management reviewPartialsrc/features/work/knowledge.tstests/work/runtime.mjstests/adoption/prior-data-upgrade.mjsGap: No federated knowledge or dashboards; hosted and owner acceptance unproven.
Employee channels 0 done · 5 partial · 4 missing
CHANNEL-001targetSlack as a primary employee channelMissingGap: No Slack app or connector: no DM, help-channel, reaction, shortcut, modal or App Home intake.
CHANNEL-002targetMicrosoft Teams as a primary employee channelMissingGap: No Teams app or connector: no personal chat, channel, message-extension, Adaptive Card or tab intake.
CHANNEL-003targetEmail mailboxesPartialsrc/features/work/intake.tssrc/features/execution/mail/sender.tstests/connections/sendgrid-runtime.mjsGap: No Gmail/Exchange mailbox connector or threading by headers.
CHANNEL-004targetEmployee portalPartialsrc/ui/work.tsxsrc/ui/knowledge.tsxtests/ui/browser.mjstests/ui/connected-request.mjsGap: No "my devices", notices, branding or custom domain.
CHANNEL-005targetMobile for employees, approvers and techniciansPartialtests/ui/viewport-evidence.mjsGap: No native iOS/Android apps, push or quiet hours.
CHANNEL-006targetConversational help that actsPartialsrc/features/intelligence/intake.tssrc/features/intelligence/intake-execution.tstests/ui/connected-request.mjsGap: Portal only; no Slack/Teams or live agent handoff.
CHANNEL-007targetPhone and walk-up intakeMissingGap: No phone-system or walk-up intake.
CHANNEL-008targetService notices to employeesPartialsrc/features/services/incidents.tstests/services/run.mjsGap: No portal banner or chat posting.
CHANNEL-009targetRequest sharing and manager visibilityMissingGap: No request sharing or manager team view.
Service catalog and approvals 0 done · 4 partial · 1 missing
CATALOG-001targetCatalog items with formsPartialsrc/features/work/requests.tstests/ui/connected-request.mjsGap: No form builder, conditional fields, required attachments, audience or cost.
CATALOG-002targetApproval chainsPartialsrc/features/work/fulfilment-decisions.tssrc/features/work/delegation.tstests/ui/fulfilment-decision-journey.mjstests/execution/authority-manager-cases.mjsGap: Single manager approval; no multi-level, finance threshold, approval SLA or email-reply approval.
CATALOG-003targetFulfilment task plansPartialsrc/features/work/requests.tssrc/features/execution/plans.tstests/ui/connected-request.mjsGap: No team task templates.
CATALOG-004targetBundles and kitsMissingGap: No bundles.
CATALOG-005targetSoftware requests installed through MDMPartialsrc/features/work/requests.tssrc/features/execution/verification.tsGap: Software is a catalog kind fulfilled as an access grant; no MDM app binding, install-group assignment, installed-inventory verification, deployment failure task or lease uninstall.
Agent workspace and ticket operations 0 done · 11 partial · 6 missing
DESK-001targetQueues, groups and viewsPartialsrc/features/work/core.tssrc/ui/work.tsxGap: No groups, saved views, bulk actions or triage shortcuts.
DESK-002targetClassification and priorityPartialsrc/features/work/intake-classification.tstests/work/runtime.mjsGap: No categories or priority matrix.
DESK-003targetRouting and assignmentPartialsrc/features/work/core.tssrc/features/intelligence/intake-execution.tsGap: No rules, round-robin, load, skills or CI/service support-group routing.
DESK-004targetSLA policiesPartialsrc/features/work/calendar.tstests/work/runtime.mjsGap: One commitment per ticket; no policy sets or holiday catalogues.
DESK-005targetEscalation and supervisor rulesPartialsrc/features/services/integrations.tssrc/features/intelligence/followup.tsGap: No multi-level escalation or supervisor rules.
DESK-006targetTicket relationshipsPartialsrc/features/services/incidents.tsGap: No merge, split or parent/child tickets.
DESK-007targetCollaborationPartialsrc/features/work/core.tstests/work/runtime.mjstests/ui/browser.mjsGap: No mentions, watchers or side conversations.
DESK-008targetResponses and summariesPartialsrc/features/intelligence/models.tssrc/features/intelligence/intake.tsGap: No canned responses or cited summaries.
DESK-009targetSatisfaction surveysMissingGap: No CSAT.
DESK-010targetCustom fields, forms and statusesMissingGap: No custom fields, forms, statuses or required-on-status resolution code and close notes.
DESK-011targetDepartment workspacesPartialsrc/platform/auth.tssrc/features/work/core.tstests/platform/runtime.mjsGap: No department workspaces under one portal.
DESK-012targetTime tracking and effortMissingGap: No time entries.
DESK-013targetScheduled and recurring workMissingGap: No recurring tickets.
DESK-014targetRemote support handoffMissingGap: No remote-support integration.
DESK-015targetAgent scenarios and record templatesMissingGap: No agent scenarios or record templates.
DESK-016targetGlobal agent searchPartialsrc/features/work/knowledge.tstests/work/runtime.mjsGap: Articles only; no search across tickets, people, assets, CIs, changes or problems.
DESK-017targetTicket activity historyPartialsrc/features/work/core.tstests/work/runtime.mjsGap: State transitions only, as public messages; no field-level before/after history, actor types or imported source history.
Notifications 0 done · 1 partial · 1 missing
NOTIFY-001targetDefault notifications by role and eventPartialsrc/features/execution/notifications.tstests/execution/runtime.mjsGap: Explicit per-message only; no event-driven default set, chat or push delivery, or actionable agent notifications.
NOTIFY-002targetAdmin-configured rules, templates and preferencesMissingGap: No notification rules, templates, branding or preferences.
Identity and SaaS access 2 done · 1 partial · 7 missing
ACCESS-001targetMicrosoft Entra IDDonesrc/features/execution/connectors.tssrc/features/execution/identity.tstests/execution/runtime.mjstests/ui/connected-lifecycle.mjs
ACCESS-002targetOktaMissingGap: No Okta connector.
ACCESS-003targetGoogle WorkspaceMissingGap: No Google Workspace connector.
ACCESS-004targetAuthMissingGap: No Auth connector.
ACCESS-005targetSaaS application provisioningMissingGap: No GitHub, Slack, Salesforce, Atlassian, Zoom or AWS connectors.
ACCESS-006targetJust-in-time and time-bound accessDonesrc/features/work/requests.tssrc/features/execution/automation.tstests/ui/connected-request.mjs
ACCESS-007targetSelf-service account recoveryMissingGap: No password/MFA reset or unlock, in a cloud IdP or in on-premises AD.
ACCESS-008targetApplication catalog and ownersPartialsrc/features/work/requests.tssrc/features/services/economics.tsGap: No app registry with entitlements.
ACCESS-009targetUser access reviewsMissingGap: No access reviews.
ACCESS-010targetOn-premises Active Directory (hybrid identity)MissingGap: No on-premises AD relay, source-of-authority routing or domain-controller readback.
Joiners, movers and leavers 0 done · 6 partial · 1 missing
LIFE-001targetHRIS-triggered lifecycleMissingGap: No Rippling, Gusto, BambooHR, Workday or Willow connector; lifecycle accepts HR facts through the API only.
LIFE-002targetDated task plans across teamsPartialsrc/features/work/lifecycle.tstests/work/runtime.mjsGap: No templates by role, location or employment type.
LIFE-003targetBirthright access baselinesPartialsrc/features/work/lifecycle.tstests/ui/connected-lifecycle.mjsGap: No access policies.
LIFE-004targetJoiner device readinessPartialsrc/features/work/resources.tstests/ui/custody-journey.mjsGap: No zero-touch enrolment or shipping.
LIFE-005targetLeaver revocation everywherePartialsrc/features/execution/identity.tssrc/features/work/lifecycle.tstests/ui/connected-lifecycle.mjsGap: Entra only; no Okta, Google, SaaS or on-premises AD revocation, data transfer or device actions.
LIFE-006targetContractors and temporary staffPartialsrc/features/work/lifecycle.tstests/work/runtime.mjsGap: No sponsor re-attestation.
LIFE-007targetLifecycle evidence packPartialsrc/features/work/requests.tssrc/features/execution/verification.tsGap: No exportable pack.
Assets, devices and licences 0 done · 7 partial · 4 missing
ASSET-001targetMDM syncMissingGap: No Jamf, Intune or Kandji connector and no installed-application inventory.
ASSET-002targetDevice actions under grantMissingGap: No device actions or inventory-verified app push and removal.
ASSET-003targetDiscovery and reconciliationPartialsrc/features/connections/providers.tstests/connections/runtime.mjsGap: Graph device list only; no MDM, EDR, cloud-account or network discovery.
ASSET-004targetHardware lifecycle and custodyPartialsrc/features/work/resources.tstests/ui/custody-journey.mjstests/work/runtime.mjsGap: No ITAD certificate requirement.
ASSET-005targetStock rooms and reorderPartialsrc/features/work/requests.tsGap: No stock locations or reorder.
ASSET-006targetSoftware licence management and compliancePartialsrc/features/services/economics.tstests/services/run.mjsGap: No IdP usage feed, reclamation through connectors, desktop installation compliance or prohibited titles.
ASSET-007targetContracts, warranties and vendorsPartialsrc/features/services/economics.tstests/services/run.mjsGap: No warranties.
ASSET-008targetAsset financialsMissingGap: No depreciation or accounting export.
ASSET-009targetCMDB and service dependenciesPartialsrc/features/services/graph.tstests/services/run.mjsGap: No CI type model or impact view.
ASSET-010targetPhysical auditsMissingGap: No physical audits.
ASSET-011targetHardware requests and device swaps for existing employeesPartialsrc/features/work/resources.tstests/ui/custody-journey.mjsGap: No replacement/loaner chain, MDM enrolment, shipping, return kit or swap gate.
Incidents and problems 0 done · 5 partial · 1 missing
INC-001targetMajor incidentsPartialsrc/features/services/incidents.tstests/services/run.mjsGap: No war room or Oncall/PagerDuty connector.
INC-002targetMonitoring and alert intakePartialsrc/features/services/integrations.tstests/services/run.mjsGap: No named Uptime/Datadog/PagerDuty/Spool connectors or paging on intake.
INC-003targetStatus communicationPartialsrc/features/services/integrations.tstests/services/run.mjsGap: No Lamp or Statuspage connector.
INC-004targetEngineering escalationMissingGap: No Jira/GitHub/Linear/Vector escalation.
PROB-001targetProblem managementPartialsrc/features/services/problems.tsGap: No public-door test; no KB publishing of workarounds.
PROB-002targetProactive problem detectionPartialsrc/features/intelligence/investigations.tssrc/features/intelligence/capabilities.tsGap: No ticket clustering into problems.
Change management 0 done · 7 partial · 0 missing
CHANGE-001targetChange types and templatesPartialsrc/features/services/changes.tstests/services/run.mjsGap: No templates or standard-change catalog.
CHANGE-002targetRisk scoringPartialsrc/features/services/changes.tsGap: No scoring.
CHANGE-003targetChange advisory boardPartialsrc/features/services/changes.tstests/services/integration.mjsGap: No CAB, meetings or votes.
CHANGE-004targetChange calendar and freeze windowsPartialsrc/features/services/changes.tstests/ui/connected-change.mjsGap: No calendar, freeze windows or ICS.
CHANGE-005targetRollback, change-caused incidents and post-implementation reviewPartialsrc/features/services/changes.tstests/services/integration.mjsGap: No automatic incident linking, health-check gate on success or PIR.
CHANGE-006targetDevelopment-tool contextPartialsrc/features/intelligence/engineering.tsGap: No GitHub/Jira/Vector links or deployment-raised changes.
CHANGE-007targetRelease managementPartialsrc/features/services/changes.tssrc/features/execution/deployment.tstests/ui/connected-change.mjsGap: No release records, go/no-go or release notes.
IT projects 0 done · 0 partial · 1 missing
PROJECT-001targetIT team projectsMissingGap: No IT projects.
Knowledge 1 done · 1 partial · 3 missing
KB-001targetKnowledge baseDonesrc/features/work/knowledge.tstests/work/runtime.mjstests/adoption/prior-data-upgrade.mjs
KB-002targetFederated knowledge sourcesMissingGap: No federated sources (Confluence, Slate, Google Drive, SharePoint, Notion).
KB-003targetDeflection with verified outcomePartialsrc/features/work/knowledge.tstests/work/runtime.mjsGap: No suggestion before filing or deflection count.
KB-004targetArticles from resolved workMissingGap: No article drafting from tickets.
KB-005targetArticle feedback, attachments and templatesMissingGap: No article feedback, attachments or templates.
Reporting 0 done · 4 partial · 1 missing
REPORT-001targetService desk dashboardsPartialsrc/features/work/knowledge.tssrc/features/services/economics.tstests/adoption/prior-data-upgrade.mjstests/services/run.mjsGap: No dashboards, CSAT, per-agent views or reporting on imported history.
REPORT-002targetCustom and scheduled reportsMissingGap: No report builder or scheduling.
REPORT-003targetData access for BIPartialsrc/features/work/index.tstests/work/runtime.mjsGap: No scheduled BI or warehouse export.
REPORT-004targetHuman work savedPartialsrc/features/intelligence/measurement.tstests/intelligence/runtime.mjsGap: No per-request-type touch reporting.
REPORT-005targetIT operations and asset KPIsPartialsrc/features/services/economics.tstests/services/run.mjsGap: No MTTA/MTTR, change success, emergency share or compliance/licence KPIs.
Platform, administration and integration 4 done · 7 partial · 3 missing
ROLE-001targetRoles and permissionsPartialsrc/platform/auth.tstests/ui/browser.mjstests/platform/runtime.mjsGap: Fixed roles; no custom roles.
SSO-001targetSign-in, SSO and SCIMPartialsrc/platform/sso.tssrc/platform/base-authtests/platform/runtime.mjstests/platform/base-auth-runtime.mjsGap: No SAML/OIDC with named IdPs, SCIM or MFA enforcement.
AUDIT-001targetAudit logDonesrc/platform/privacy.tstests/platform/privacy-runtime.mjstests/platform/config-runtime.mjs
API-001targetREST API and webhooksPartialsrc/features/work/index.tssrc/features/execution/index.tstests/work/runtime.mjsGap: No outbound event webhooks.
API-002targetNo-code workflow automatorPartialsrc/features/execution/automation.tssrc/features/execution/plans.tstests/ui/connected-request.mjsGap: No no-code builder.
API-003targetAgent access by MCPMissingGap: No MCP server.
PORT-001targetPortable native archiveDonesrc/features/adoption/export.tssrc/features/adoption/import.tstests/adoption/runtime.mjs
ERASURE-001targetAuthorised erasureDonesrc/features/adoption/core.tssrc/features/work/privacy.tstests/adoption/runtime.mjstests/work/person-binding-runtime.mjstests/platform/privacy-runtime.mjs
RETENTION-001targetRetention policiesPartialsrc/features/adoption/retention.tstests/adoption/runtime.mjsGap: Archive retention only; no ticket/attachment retention.
BASE-001targetBase platform replacementsDonesrc/platform/base-authsrc/basetests/platform/base-auth-runtime.mjstests/platform/mail-edge.mjs
COST-001targetUS pricing and budgetsPartialsrc/features/intelligencetests/intelligence/runtime.mjsGap: No seat pricing or sales-tax invoices.
A11Y-001targetAccessibilityPartialtests/ui/viewport-evidence.mjstests/ui/browser.mjsGap: No WCAG audit.
L10N-001targetUS English and Spanish for employeesMissingGap: English only.
SANDBOX-001targetSub-production workspace and configuration promotionMissingGap: No sandbox workspace or configuration promotion.
Migration and coexistence 0 done · 2 partial · 3 missing
MIGRATE-001targetFreshservice migrationPartialsrc/features/adoption/freshservice-importsrc/features/adoption/freshservice.tstests/adoption/freshservice-import.mjstests/adoption/runtime.mjsGap: Tickets and conversations only, 100 per job; no assets, catalog, KB, SLA, attachment bytes or 50,000-ticket scale run.
MIGRATE-002targetJira Service Management migrationMissingGap: No JSM, Assets or Confluence importer or delta passes.
MIGRATE-003targetServiceNow migrationMissingGap: No ServiceNow Table/Attachment API importer or delta passes.
MIGRATE-004targetSpreadsheet and lightweight-tool move-inMissingGap: No CSV, Zendesk or Snipe-IT importer.
MIGRATE-005targetCoexistence and cutoverPartialsrc/features/adoption/coexistence.tstests/adoption/runtime.mjsGap: Freshservice delta checkpoint and fenced cutover only; no ServiceNow or JSM deltas and no post-cutover source watch for late arrivals.
Authority, evidence and operation (retained safeguards) 4 done · 3 partial · 0 missing
A1publishedIdentity and privacyDonesrc/platform/auth.tssrc/features/work/privacy.tstests/ui/browser.mjstests/platform/privacy-runtime.mjstests/work/person-binding-runtime.mjs
A2publishedGranted actionDonesrc/features/execution/authority.tssrc/features/execution/grants.tstests/execution/authority-runtime.mjstests/ui/connected-request.mjs
A3publishedDurable effectsDonesrc/features/execution/engine.tstests/ui/connected-cancellation.mjstests/ui/connected-restart.mjstests/execution/runtime.mjs
A4publishedVerifiable outcomesDonesrc/features/execution/verification.tstests/ui/connected-request.mjstests/execution/runtime.mjs
A5publishedLegible servicePartialsrc/uitests/ui/run.mjstests/ui/viewport-evidence.mjsGap: No chat channels; bounded accessibility evidence.
A6publishedData and source custodyPartialsrc/features/adoptiontests/adoption/prior-data-upgrade.mjstests/adoption/runtime.mjsGap: Incumbent imports bounded to Freshservice.
A7publishedHonest operating and cost boundariesPartialsrc/features/intelligence/measurement.tstests/intelligence/runtime.mjsGap: Human touch counting incomplete.
Flagship service operations (retained) 0 done · 3 partial · 0 missing
O1publishedService graph and major incidentsPartialsrc/features/services/graph.tstests/services/run.mjstests/services/integration.mjsGap: No real monitoring/on-call.
O2publishedChange, release and preventionPartialsrc/features/services/changes.tstests/services/integration.mjstests/ui/connected-frontier.mjsGap: No live provider or sustained prevention.
O3publishedLifecycle and economicsPartialsrc/features/services/economics.tstests/services/run.mjsGap: No real supplier or reclamation.
Push further with agents 0 done · 9 partial · 1 missing
AGENT-001push furtherResolve routine requests end to endPartialsrc/features/intelligence/intake-execution.tstests/ui/connected-request.mjsGap: Graph-only effects; no hardware chain.
AGENT-002push furtherRevoke the leaver everywherePartialsrc/features/work/lifecycle.tstests/ui/connected-lifecycle.mjsGap: No SaaS/OAuth enumeration.
AGENT-003push furtherVerify the employee can work againPartialsrc/features/execution/verification.tstests/ui/connected-request.mjsGap: No sign-in, device-compliance or installed-app signals.
AGENT-004push furtherInvestigate multi-system failuresPartialsrc/features/intelligence/research.tstests/intelligence/frontier.mjsGap: No held-out live case against real IdP, MDM and monitoring logs.
AGENT-005push furtherBuild a missing connectorPartialsrc/features/intelligence/engineering.tstests/ui/connected-frontier.mjsGap: No released provider connector.
AGENT-006push furtherMeasure human work savedPartialsrc/features/intelligence/measurement.tstests/intelligence/runtime.mjsGap: No per-request-type touch reporting or ranked automation proposal.
AGENT-007push furtherMine ticket history for automationsPartialsrc/features/intelligence/capabilities.tstests/intelligence/frontier.mjsGap: No ticket-history mining.
AGENT-008push furtherKeep devices and licences healthyMissingGap: No MDM/EDR signals.
AGENT-009push furtherCarry service commitments across ticketsPartialsrc/features/intelligence/commitments.tstests/intelligence/frontier.mjsGap: No live provider observations (such as GitHub access readback) behind commitments.
AGENT-010push furtherPrevent recurrence and simplifyPartialsrc/features/intelligence/simplification.tstests/intelligence/frontier.mjsGap: No recurrence window measured on a real provider or simplification compared with continued repair.
Frontier extensions (retained) 0 done · 7 partial · 0 missing
F1publishedPersistent service commitmentsPartialsrc/features/intelligence/commitments.tstests/intelligence/frontier.mjsGap: Frontier evidence gate in ACCEPTANCE.md not demonstrated on real observations.
F2publishedSemantic observation and helpPartialsrc/features/intelligence/events.tstests/intelligence/runtime.mjsGap: Frontier evidence gate in ACCEPTANCE.md not demonstrated on real selected events.
F3publishedUnfamiliar causal researchPartialsrc/features/intelligence/research.tstests/intelligence/frontier.mjsGap: Frontier evidence gate in ACCEPTANCE.md not demonstrated on a held-out unfamiliar case.
F4publishedAutonomous service engineeringPartialsrc/features/intelligence/engineering.tstests/ui/connected-frontier.mjsGap: No change authored against real owned systems and released through the change lane.
F5publishedExecutable service models and experimentsPartialsrc/features/intelligence/protocol.tsGap: No public-door test; frontier evidence gate in ACCEPTANCE.md not demonstrated.
F6publishedReusable capabilities from solved casesPartialsrc/features/intelligence/capabilities.tstests/intelligence/frontier.mjsGap: Frontier evidence gate in ACCEPTANCE.md not demonstrated on held-out cases.
F7publishedContinuous service simplificationPartialsrc/features/intelligence/simplification.tstests/intelligence/frontier.mjsGap: No substantive redesign compared with continued repair on service outcomes.

How statuses are judged

Done
It ships in the default install, and a cited test or journey exercises it.
Partial
Some of it ships, it ships only behind an opt-in, or there is code with no requirement-level test.
Missing
There is no implementation.

Read CONTRACT.md on GitHub