Skip to content

Learning

Operational handbook for the Guild's learning program: cert-bearing courses (Moodle), non-cert webinar replays (WordPress), and resource documents (WordPress).

For the architecture and decisions behind this setup, see ADR-0006 (LMS) and ADR-0007 (Library + video hosting).

How content is split

Content type Lives in Who publishes
Cert-bearing course (issues certificate or CE hours) Moodle at learn.ganjierguild.com Education chair + course author
CE-eligible webinar replay Moodle as a lesson inside the "Webinar Library" course Education chair
Non-cert webinar replay (Guild Hour, town halls) WordPress as a replay post Communications committee
Resource document (PDF, template, dataset, link) WordPress as a resource post Operations Lead or relevant committee
Reference article WordPress as a resource post with format: article Communications committee

Members see all of it through one Learning hub on their member portal — they don't need to know which system holds what.

Where each system handles what

learn.ganjierguild.com              ganjierguild.com (member portal)
─────────────────────────           ─────────────────────────────────
• Courses                           • Replay library (non-cert)
• Quizzes / exams                   • Resource library
• Certifications (PDF certs)        • Unified Learning hub
• CE hour tracking                    (pulls from both systems)
• Cert-eligible replays             • Form O permission gate
• Gradebook                         • BuddyBoss profile "My Learning" tab

Both systems share login (SSO via OIDC) so members never see a second prompt.

Pre-publication checklist (any video content)

Before any recording is published anywhere, complete this checklist:

  • Form S (Media Release) signed by every on-camera participant
  • Audience tier determined per Form O matrix: public / internal / restricted
  • If recording is sensitive, confirm "do not record" wasn't the right call (default for board executive sessions)
  • If restricted: target Drive folder + access list verified against Form O
  • If public or internal: YouTube unlisted upload completed, captions enabled
  • Video file edited (intro, outro, sensitive-segment cuts if any)
  • Thumbnail created
  • Description written
  • Topic tags assigned
  • Test playback as a non-authorized member confirms gate works (for internal/restricted)

Publishing a course in Moodle (cert-bearing)

Owner: Education chair (or designated course author)

  1. Author the course outline offline first (Google Doc): course objectives, lesson structure, quiz design, certificate criteria, CE hour value.
  2. Education committee review signs off on objectives, content accuracy, alignment with Guild scope (no Ganjier-program content unless brand license amended — see ADR-008).
  3. Sysadmin or full-stack dev creates the course shell in Moodle:
  4. Set course shortname, full name, category
  5. Configure enrollment method (cohort-based by BuddyBoss member type via lms-bridge)
  6. Set completion criteria (lesson completion, quiz pass, etc.)
  7. Configure mod_customcert certificate template with Guild branding
  8. Course author populates lessons:
  9. Text lessons (HTML)
  10. Video lessons (YouTube unlisted embeds for public/internal recordings; Google Drive embeds for restricted)
  11. Quiz module(s) with question bank
  12. Resources (file uploads)
  13. CE hour configuration:
  14. Set ce_hours custom field on course
  15. On completion, Moodle webhook fires → ce-ledger module writes a CE row to the member's record
  16. Permission gate:
  17. Update Form O matrix to include this course as a permission row
  18. Sysadmin maps Form O entries to Moodle cohorts (auto-enrollment via lms-bridge)
  19. Test pass:
  20. Operations Lead enrolls a test user, completes the course, verifies certificate generation and CE ledger write
  21. Publish:
  22. Set course visibility to "Show"
  23. Communications committee announces in member newsletter + portal feed

Publishing a non-cert replay in WordPress

Owner: Communications committee

  1. Pre-publication checklist (above) complete, including Form S consent.
  2. Upload the video:
  3. Public/Internal → YouTube as Unlisted, captions enabled
  4. Restricted → upload to the appropriate Drive subfolder (verify ACL matches Form O before upload)
  5. Create the WordPress replay post:
  6. Title, description, recorded date, duration, presenters
  7. host: youtube or google_drive
  8. youtube_id or drive_file_id
  9. audience: public / internal / restricted
  10. Topic tags
  11. consent_verified: true
  12. retention_years (default 7; override per content type)
  13. Verify rendering:
  14. As an authorized member: video plays
  15. As a non-authorized member (test account in a different member type): permission-denied notice appears, no embed leaks
  16. Publish:
  17. Set status to Published
  18. Replay surfaces in the unified Learning library automatically

Publishing a resource document in WordPress

Owner: Operations Lead or originating committee

  1. Resource ready: PDF finalized, link verified, dataset cleaned, etc.
  2. Audience tier determined per Form O matrix.
  3. Upload to WP media library (for files) or note external URL (for links).
  4. Create the WordPress resource post:
  5. Title, description, date published
  6. format: pdf / link / tool / dataset / article
  7. file_path or external_url
  8. audience: public / internal / restricted
  9. Topic tags
  10. related_forms (cross-link to relevant Form A–V if any)
  11. retention_years
  12. Permission gate:
  13. WordPress automatically gates by audience tier via the same module that gates replays and forms
  14. Publish:
  15. Set status to Published
  16. Resource surfaces in the unified Learning library automatically

Drive folder structure (Restricted content)

Guild Drive (Workspace tenant)
└── Guild Recordings/
    ├── Guild Recordings — Restricted/
    │   Access: Board + Officers + counsel
    │   (board sessions, financial reviews, sensitive operational recordings)
    │
    └── Guild Recordings — Restricted — Legal Privilege/
        Access: Board officers + counsel only
        (privileged legal discussions, IP strategy sessions)

Folder ACL maintenance:

  • ACLs are reviewed quarterly by Operations Lead alongside the Form O quarterly access review
  • When a member's role changes (joining, leaving, promotion to officer), Drive ACLs are updated as part of Form J (Offboarding Checklist) or the equivalent onboarding workflow
  • Sysadmin maintains a running log of folder ACL changes in the Drive's audit log; spot checks are part of Form K (Emergency Access & Recovery Record) reviews

Quarterly access review

Once per quarter, Operations Lead conducts an access review covering:

  1. Moodle cohort membership — does each cohort still match the Form O matrix?
  2. Drive folder ACLs — does each Restricted folder's access list match Form O?
  3. WordPress permission rules — do replay and resource audience tiers still match Form O?
  4. Member transitions since last review — were Form J offboarding tasks completed for departing members? Were new members added to the right Drive folders and Moodle cohorts?

Findings logged in Form K (Emergency Access & Recovery Record) and reported to the founding board.

Retention

Content type Default retention Source of truth
Moodle course content Indefinite while course is active; archived 3 years after retirement Education chair
Moodle quiz attempts (member-level) 7 years Sysadmin (matches credentialing-record retention)
Moodle certificates issued Indefinite (the credential record itself) Sysadmin
Non-cert replay (public) 5 years from recording date, then archive review Communications committee
Non-cert replay (internal) 7 years Communications committee
Non-cert replay (restricted) Per the related Form's retention_years field (typically 7+ years) Operations Lead
Resource document Per the resource's retention_years (typically 7 years) Originating committee

Retention periods can be overridden per item via the retention_years field in the YAML frontmatter / post meta. Items past retention are reviewed by the originating committee for archive vs delete.

Ganjier-program content boundary

The Guild does not publish Ganjier-program educational content unless and until the Guild's brand license with the Ganjier program is amended to cover content delivery (see ADR-008). Specifically:

  • ❌ No .mbz imports from the Ganjier program's Moodle into the Guild's Moodle
  • ❌ No paraphrased rebuilding of Ganjier-program courses
  • ❌ No Ganjier-program logos or marks used inside Guild courses or replays
  • ❌ No "co-branded" course titles like "Ganjier Foundations 101" without explicit license amendment

If a course author or committee wants to deliver Ganjier-program content, the request goes through Operations Lead → counsel for license-amendment review before any work begins.

Roles

Role Responsibilities
Education chair Course curation, course author oversight, CE configuration, sign-off on Moodle course publications
Communications committee Replay publication workflow (non-cert), resource curation, member-facing announcements
Operations Lead Form O maintenance, quarterly access review, license-boundary review, Drive folder ACL ownership
Sysadmin Moodle install, plugin maintenance, Cloudways environment, SSO bridge, backup verification
Full-stack dev lms-bridge, ce-ledger, library modules in guildcommerce-core-plugin
Course author Lesson content, quiz authoring, video recording, instructor-of-record role
Counsel Brand license interpretation, content-licensing amendments

Open items

  • Year 1 course roadmap (Education chair + founding board) — what gets authored first?
  • Moodle install + Boost Union theme parity work — sysadmin + full-stack dev
  • lms-bridge and library module implementation in guildcommerce-core-plugin
  • First quarterly access review scheduled after first three months of operations
  • Workspace tier verification — confirm Business Standard+ for audit log + watermarking on Drive