High-value read-only workflow
Read-only learner-progress desk: join enrollment, lesson, attendance, and unanswered-question views; report stalled cohorts and source-linked owner queues.
Course creators need student onboarding, lesson drips and community management; learner identity and consent are the sensitive boundary.
Read-only learner-progress desk: join enrollment, lesson, attendance, and unanswered-question views; report stalled cohorts and source-linked owner queues.
E — Catalogue signal: Onboard students, run lesson drips, and manage the community.
U — Not established in this lane; no attributable industry denominator or repeated accepted-outcome receipt.
Specification crosswalk: I — intake_normalize, schedule_coordinate, follow_up_chase, report_digest
enrolled → scheduled → started → active → stalled | completed; question: open → answered | escalated
course_operator_or_cohort_lead
Read-only enrollment/progress/community metadata; no access grant, grade, message, refund, or learner-profile mutation.
Source of truth: Learning-management/enrollment system and community platform; authoritative learner identity and consent source must be declared.
Exception paths: duplicate learner; missing consent; timezone conflict; content unavailable; attendance mismatch; unresolved question
These are the non-null rows from repo-matrix-observations.jsonl for this industry. The 1,000-row partition includes reserved cells; only 59 observed repository slots are shown here.
| Repository | Observed slots | Dimensions | Capability families | Observed atoms |
|---|---|---|---|---|
| chamilo/chamilo-lms ↗ | 10 | agent_authority, data_model, demand_atom_fit, economics_maintenance, integration_surface, provenance_rights, runtime_deployment, ui_assembly, verification_eval, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| OpenOLAT/OpenOLAT ↗ | 9 | agent_authority, data_model, demand_atom_fit, economics_maintenance, integration_surface, provenance_rights, runtime_deployment, ui_assembly, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| frappe/lms ↗ | 8 | agent_authority, demand_atom_fit, economics_maintenance, integration_surface, provenance_rights, runtime_deployment, ui_assembly, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| pupilfirst/pupilfirst ↗ | 8 | data_model, demand_atom_fit, economics_maintenance, provenance_rights, runtime_deployment, ui_assembly, verification_eval, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| LMS-Laravel/LMS-Laravel ↗ | 7 | data_model, demand_atom_fit, economics_maintenance, provenance_rights, ui_assembly, verification_eval, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| tough-dev-school/education-backend ↗ | 7 | data_model, demand_atom_fit, economics_maintenance, provenance_rights, runtime_deployment, ui_assembly, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| adilmohak/django-lms ↗ | 5 | demand_atom_fit, economics_maintenance, provenance_rights, ui_assembly, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
| SkyCascade/SkyLearn ↗ | 5 | demand_atom_fit, economics_maintenance, provenance_rights, ui_assembly, workflow_behavior | scaffold | follow_up_chase, intake_normalize, report_digest |
The ten category cells retain both demand and supply state. NO_OBSERVED_DEMAND_SIGNAL means the research denominator is empty; it is not a claim that the workflow does not exist.
| Category / empty-cell key | Observed demand | Candidate coverage | Search wave | Candidate examples |
|---|---|---|---|---|
Intake and normalizationintake_and_normalization | OBSERVED59 slots · 8 repos | SHARED_CANDIDATE_COVERAGE10 candidate repos · 10 source rows | NOT_SEARCHEDno targeted search proposal | LimeSurvey/LimeSurvey, ProcessMaker/processmaker, al1abb/invoify, formbricks/formbricks |
Triage and routingtriage_and_routing | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL31 candidate repos · 31 source rows | NOT_SEARCHEDno targeted search proposal | Alfresco/alfresco-community-repo, Leantime/leantime, ProcessMaker/processmaker, Worklenz/worklenz |
Records, extraction and auditrecords_and_audit | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL47 candidate repos · 47 source rows | NOT_SEARCHEDno targeted search proposal | Alfresco/alfresco-community-repo, AppFlowy-IO/AppFlowy, BookStackApp/BookStack, BuilderIO/builder |
Classification and prioritizationclassification_and_prioritization | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL39 candidate repos · 39 source rows | NOT_SEARCHEDno targeted search proposal | Dolibarr/dolibarr, PostHog/posthog, SuiteCRM/SuiteCRM, apache/superset |
Scheduling and coordinationscheduling_and_coordination | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL14 candidate repos · 14 source rows | NOT_SEARCHEDno targeted search proposal | calcom/cal.diy, alextselegidis/easyappointments, lukevella/rallly, thunderbird/appointment |
Follow-up and communicationfollow_up_and_communication | OBSERVED59 slots · 8 repos | SHARED_CANDIDATE_COVERAGE23 candidate repos · 23 source rows | NOT_SEARCHEDno targeted search proposal | RocketChat/Rocket.Chat, TryGhost/Ghost, activepieces/activepieces, chatwoot/chatwoot |
Reporting and digestreporting_and_digest | OBSERVED59 slots · 8 repos | SHARED_CANDIDATE_COVERAGE15 candidate repos · 15 source rows | NOT_SEARCHEDno targeted search proposal | PostHog/posthog, apache/superset, bigcapitalhq/bigcapital, cube-js/cube |
Monitoring and alertsmonitoring_and_alerts | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL0 candidate repos · 0 source rows | NOT_SEARCHEDno targeted search proposal | none recorded |
Approval and controlled publishingapproval_and_controlled_publish | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL21 candidate repos · 21 source rows | NOT_SEARCHEDno targeted search proposal | Budibase/budibase, ProcessMaker/processmaker, activepieces/activepieces, apache/airflow |
Sync and browser operationssync_and_browser_operations | NOT_OBSERVED_IN_750_SLOTS0 slots · 0 repos | NO_OBSERVED_DEMAND_SIGNAL1 candidate repos · 1 source rows | NOT_SEARCHEDno targeted search proposal | activepieces/activepieces |
These records come from the permanent source registry's industry-demand join. A joined candidate remains a discovery/research record; qualification and admission are shown explicitly.
| Joined shelf record | Observed slots | Families / atoms | Current verdict | Qualification / admission |
|---|---|---|---|---|
| frappe/lms ↗ | 8 | scaffoldfollow_up_chase, intake_normalize, report_digest | deeper_evidence_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| chamilo/chamilo-lms ↗ | 10 | scaffoldfollow_up_chase, intake_normalize, report_digest | deeper_evidence_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| adilmohak/django-lms ↗ | 5 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| LMS-Laravel/LMS-Laravel ↗ | 7 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| OpenOLAT/OpenOLAT ↗ | 9 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| pupilfirst/pupilfirst ↗ | 8 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| SkyCascade/SkyLearn ↗ | 5 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
| tough-dev-school/education-backend ↗ | 7 | scaffoldfollow_up_chase, intake_normalize, report_digest | discovery_candidate | NOT_QUALIFIED / NOT_ADMITTED |
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 31 candidate repositories.
NOT_SEARCHED. Exact P03 workflow/support/project kinds; a product README alone is not semantic coverage.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 47 candidate repositories.
NOT_SEARCHED. Exact P03 document/record kinds; source-specific authority and provenance remain unqualified.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 39 candidate repositories.
NOT_SEARCHED. Exact P03 CRM/analytics/search candidates are adjacent supply, not proof of a classifier workflow.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 14 candidate repositories.
NOT_SEARCHED. Exact P03 scheduling kind only; calendar UI alone is not a booking/authority proof.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 0 candidate repositories.
NOT_SEARCHED. No dedicated P03 capability kind is mapped; analytics is not silently promoted to monitoring.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 21 candidate repositories.
NOT_SEARCHED. Exact P03 approval/signing kinds; an approval-shaped product does not grant host authority.
NO_OBSERVED_DEMAND_SIGNAL · 0 observed demand slots · 1 candidate repositories.
NOT_SEARCHED. Connector candidates cover a possible sync seam; no direct P03 browser-operation kind is available.
Progress visibility and exception review are reversible and can use synthetic learners; they do not decide educational outcomes or contact learners.
A held-out cohort cannot be mapped to a single source-of-truth state without manual invention, or a pilot requires sending/access changes to show value.
Sources: research/actionmodel-builder-research-2026-08-26/phase-2/outputs/industry-atom-specifications.md · research/workstreams/p01-client-intelligence/runs/2026-08-27-sprint-1-fable/industry-discovery-priors.jsonl · research/actionmodel-builder-research-2026-08-26/expansion/outputs/repo-matrix-observations.jsonl · research/workstreams/2026-08-28-program-driver/shelf-prebake/industry-gap-matrix.json · knowledge/capability-shelf/source-registry.jsonl