UAIX / AI Memory / Handoff

2ix Volunteer Matching and Project Memory System Design

Report summary

This report treats 2ix.org as a greenfield product specification , not as an audit of an existing working site. During research on May 19, 2026 , the 2ix.org homepage could not be reliably fetched by the web tool and returned timeouts on repeated attempts, so I do not assume any current production b

Status
Research archive item
Category
UAIX / AI Memory / Handoff
Length
5,095 words
Reading time
24 minutes
Report type
evaluation

Key topics

  • UAIX / AI Memory / Handoff
  • UAIX
  • AI Memory
  • Handoff
  • TypeScript
  • Privacy
  • Research Archive
  • Audit
  • Architecture

Research provenance

Archive status
Research archive item
Content identity
sha256:392b5e8169471815e6a01e9cdb34b5bfcdfec33ff1ff7acb0d3fe20b5963c739

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 33 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Executive summary

This report treats 2ix.org as a greenfield product specification, not as an audit of an existing working site. During research on May 19, 2026, the 2ix.org homepage could not be reliably fetched by the web tool and returned timeouts on repeated attempts, so I do not assume any current production behavior beyond the domain name.

The strongest product direction is to build 2ix as a hybrid volunteer marketplace plus a durable project-memory layer. It should not be only a listing board, and it should not be only a wiki. Volunteer platforms such as Idealist/VolunteerMatch emphasize searchable opportunities by keyword, skill, cause area, and work format; Catchafire emphasizes pre-scoped projects with clear outcomes, timelines, and explicit prerequisites; GitHub and Google Summer of Code show that successful open-source onboarding depends on clear contribution guidelines, beginner-friendly issue labeling, maintainer review, structured work tracking, and fast human response. Those patterns point to a system where every opportunity is structured, every match is explainable, every contribution leaves a durable handoff trail, and every project can link outward to the real systems of record such as code, issues, and docs.

The most important product decisions are summarized below.

Design questionRecommended answer for 2ixWhy this is the right default
What is 2ix?A hybrid matching system for volunteers and organizations, plus a canonical memory layer for project workVolunteer platforms need discovery and matching; open-source work needs durable state, review, and handoff memory
How are opportunities created?As structured opportunities with typed metadata, scope, prerequisites, deliverables, acceptance criteria, and linksClear outcomes and structured intake reduce ambiguity and improve matching quality
How should matching work?Pull-first, push-assisted, hybrid: volunteers browse/apply; maintainers can invite; the system recommends both directionsThis combines the openness of issue browsing with the efficiency of skills-based invitations
How should project memory work?A hybrid federated model: 2ix stores canonical task state, handoff notes, artifacts, and snapshots, while linking to code/issues/docs in external toolsGitHub-style work already lives across repositories, issues, PRs, and discussions; 2ix should unify that without copy-pasting entire ecosystems
How should roles work?Four product roles: volunteer, organization, project maintainer, reviewer, with a separate admin/moderator functionThis mirrors contributor/mentor/admin separation in successful open-source programs and preserves clear accountability
How should trust work?Verified organizations, structured reviews, project health checks, moderation tools, audit logs, and reputation that helps but does not lock out newcomersFast, fair moderation and newcomer-friendly contribution paths are central to healthy communities
What should the technical shape be?REST-first API, webhook connectors, relational core, event log, object storage, search index, and background workersThis is implementable without betting on a narrow stack and supports later federation and analytics

A good first release of 2ix should therefore do seven things well: publish structured opportunities, calculate explainable matches, onboard volunteers into live projects, track assignment and review lifecycle, preserve handoff memory, integrate with external tools, and maintain community trust and safety. Those are the load-bearing capabilities for a system intended to serve both volunteer matching and project continuity.

Research basis and design stance

The external patterns that matter most for 2ix are remarkably consistent. Idealist exposes volunteering as a filterable search experience: keyword, skill, interest, radius, location type, cause area, and “done in a day” style constraints. Idealist also presents volunteering as a large multi-organization marketplace rather than a single-org dashboard.

Catchafire adds the most useful operational discipline for 2ix. Its official documentation says projects are pre-scoped to create structure, timelines, and clear outcomes; volunteer selection uses algorithms factoring in skills, recent activity, similar completed projects, and ratings; organizations still vet candidates through application review and, when needed, interviews; and effective collaboration begins with a kickoff call, standing check-ins, and shared documents. Catchafire also distinguishes small advisory calls from larger fully scoped projects and, in newer flows, supports two-way matching where volunteers can originate proposals that organizations browse. These are exactly the right building blocks for a modern volunteer contribution system.

GitHub and Open Source Guides fill in the project-collaboration side. GitHub documents beginner-friendly discovery via good first issue and help wanted, structured issue forms with validations, CONTRIBUTING.md, community health files, code ownership and required reviews, Projects with custom fields and automation, Discussions for community conversations, and linked issues/PRs to show work in progress and automatically close issues on merge. Open Source Guides also stress that contributions are not only code: documentation, design, user support, and organizing are all valid contribution types. In other words, the best open-source systems lower the barrier to entry and keep a strong audit trail.

Google Summer of Code contributes the best role and onboarding patterns. Its contributor/mentor/org-admin split makes responsibilities legible: contributors communicate progress and blockers, mentors guide and review regularly, and org admins define expectations, acceptance criteria, coverage, escalation paths, and integration into the community. The GSoC “community bonding period” is especially relevant for 2ix: onboarding works better when a contributor is introduced to the project, gets the development environment set up, reads the documentation, refines the plan, and starts on small preliminary tasks before being judged on large deliverables.

Taken together, these sources imply a very clear design stance for 2ix:

First, 2ix should prefer scoped work over vague calls for help. Catchafire’s explicit structuring of outcomes and timelines is the right model; free-text asks should be converted into typed opportunities before publication.

Second, 2ix should treat project readiness as a prerequisite for volunteer matching. GitHub’s nonprofit “For Good First Issue” guidance expects active maintenance, a README, contribution guidelines, and beginner-friendly labels. A project without those basics is not yet ready to recruit volunteers effectively.

Third, 2ix should support more than code. Documentation, design, research, translation, outreach, community moderation, and reviewing should all be first-class opportunity types, because that is how real open-source and civic work happens.

Fourth, 2ix should separate “discussion” from “opportunity.” Early-stage ideas belong in discussion threads; once scope is clear, they should convert into structured work items. That mirrors GitHub Discussions and keeps the opportunity queue clean.

User roles and opportunity schema

The core role split should be simple, but strict.

RolePrimary responsibilityCan createCan approveCan reviewCan moderateRequired account state
VolunteerOffer time and skills to complete scoped workProfile, applications, progress updates, artifacts, handoff draftsNo final project approvalsPeer comments only unless separately granted reviewer roleReport abuse onlyProfile complete; prerequisites satisfied for each opportunity
OrganizationOwn the mission context, legal context, and project sponsorshipOrganization profile, projects, policy defaults, maintainer/reviewer assignmentsProject publication, volunteer selection policy, IP settingsOptionalNo, unless also adminVerified organization identity
Project MaintainerScope work, manage queue, guide volunteers, keep project movingOpportunities, work items, labels, onboarding checklist, memory recordsApplicant selection, assignment start, state transitions, handoff acceptanceYes, if also reviewerLimited moderation inside project spaces if grantedMaintainer training complete; MFA required
ReviewerEvaluate deliverables against acceptance criteria and record structured feedbackReview records, approval/rejection notes, scorecardsDeliverable acceptance onlyYesNo, unless also moderatorVerified reviewer status; MFA required

This role model is a practical translation of the contributor/mentor/admin structure documented by GSoC and the contributor/reviewer/code-owner patterns documented by GitHub. Contributors need clear expectations, maintainers need to guide and triage, reviewers need explicit approval authority, and the sponsoring organization must define policy and escalation.

A key implementation rule is that reviewer is a distinct permission, even when a maintainer and reviewer are the same person on small projects. Keeping it separate in the data model is what lets 2ix later require independent approval on sensitive opportunities, just as GitHub supports required reviews and code-owner review requests.

The opportunity object should be fully structured. The schema below is the minimum viable shape.

FieldTypeRequiredExact use
idUUIDYesStable primary key
organization_idUUIDYesSponsoring organization
project_idUUIDYesParent project/workstream
titlestringYesOne-sentence task name
summarystringYesCard-level description, 160–280 chars
description_mdmarkdownYesFull scope and context
opportunity_typeenumYesadvisory_call, microtask, compact_task, project, team_project
visibilityenumYespublic, organization_only, invite_only, private_draft
statusenumYesdraft, review, published, paused, matched, active, completed, handoff, archived, canceled
cause_areasarray<string>YesMission taxonomy: e.g. civic-tech, education, accessibility
work_typesarray<string>Yescode, docs, design, research, data, community, translation, review
skills_requiredarray<object>YesEach object: {skill_key, level, weight}
skills_desiredarray<object>NoUseful but non-blocking skills
languagesarray<string>NoHuman-language requirements
location_modeenumYesremote, hybrid, onsite
time_zone_overlap_hoursintegerNoMinimum synchronous overlap if needed
estimated_total_hoursintegerYesExpected total effort
estimated_hours_per_weekintegerYesExpected weekly commitment
duration_weeksintegerYesExpected elapsed duration
start_window_opendatetimeYesEarliest start
start_window_closedatetimeNoLatest acceptable start
target_due_atdatetimeNoPreferred finish date
team_sizeintegerYesDefault 1; larger for team projects
beginner_friendlybooleanYesEquivalent to good first issue intent
prerequisitesarray<object>Yes{type, text, hard_filter} e.g. background knowledge, access, training, legal
access_requirementsarray<string>NoGitHub org, Slack, docs, VPN, etc.
deliverablesarray<object>YesNamed outputs with format and owner
acceptance_criteriaarray<string>YesDefinition of done
review_modeenumYesnone, maintainer_approval, reviewer_approval, dual_approval
maintainer_idUUIDYesPrimary maintainer
reviewer_idsarray<UUID>NoAssigned reviewers
starter_context_mdmarkdownYesWhat the volunteer needs before applying
external_linksarray<object>YesRepo/issues/docs/discussions/design links
artifact_expectationsarray<string>NoFiles or links expected at completion
ip_modeenumYesproject_license, work_for_hire, cc_by, custom
response_sla_hoursintegerYesMaintainer response expectation
check_in_cadence_daysintegerYesExpected update interval
matching_preferencesobjectNoPreferred experience level, async vs sync, cause alignment, etc.
risk_levelenumYeslow, moderate, high
safety_flagsarray<string>NoSensitive data, minors, legal review, security-sensitive

This schema is directly motivated by Idealist’s searchable filters, Catchafire’s pre-scoped projects with prerequisites, samples, and outcomes, and GitHub’s structured issue forms and custom project metadata. The most important product decision here is not the field list itself, but that these are typed fields rather than prose fragments.

The scope taxonomy should stay intentionally small.

ScopeDefault use caseEffort bandInterview default
Advisory callBrainstorming, triage, consultation1–2 hoursNot required
MicrotaskSmall doc fix, tagging, issue triage, asset cleanup1–8 hoursNot required
Compact taskA bounded deliverable such as a setup guide, page redesign, bug fix1–2 weeksOptional
ProjectMulti-step deliverable with asynchronous work2–6 weeksUsually required
Team projectWork needing several volunteers or mixed skillsVariableRequired

That distinction follows Catchafire’s official split between 1-hour calls and larger scoped projects, while preserving GitHub-style “good first issue” work as the natural entry point for newcomers.

Tagging should also be normalized. Every opportunity should support machine-readable tags in five families: skill, work type, mission/cause, logistics, and difficulty/governance. Example tags: frontend-react, docs-writing, translation, civic-tech, education, remote, async-friendly, us-timezones, good-first-task, urgent, security-sensitive, review-needed. This allows both faceted search and explainable recommendations. Idealist’s visible filters and GitHub’s label-driven discovery show why this matters.

Matching mechanics and workflows

The right matching model for 2ix is hybrid, but with a clear bias: pull-first, push-assisted. In practice, volunteers should be able to browse and apply freely, while maintainers can invite likely fits and the system can suggest candidates on both sides. This combines the openness of GitHub issue discovery with the efficiency of skills-based matchmaking, and it matches Catchafire’s official combination of open marketplace behavior, organization-side volunteer requests, and newer two-way matching.

Matching designStrengthsWeaknessesBest useRecommendation
Push-onlyFast staffing for urgent roles; orgs control funnelFeels closed; weak for newcomers; less serendipitySensitive or high-risk tasksSupport, but only as an override mode
Pull-onlyOpen and transparent; great for self-directed contributorsMaintainers must sift through more noise; weak for passive but relevant candidatesOpen-source style contribution discoveryMake this the default browsing model
HybridHighest total liquidity; supports both browsing and invitations; preserves openness while improving fill rateMore complex ranking and notification policySkills-based volunteer work and open-source contribution systemsRecommended default for 2ix

The actual matching engine should run in two stages.

Stage one: eligibility filtering. This is hard yes/no gating. The volunteer must pass visibility rules, prerequisite rules, risk rules, required language/location rules, and any repository or safety access requirements. If a project is marked security-sensitive or high, the platform can require interview, MFA, past proven work, or manual approval. Catchafire’s application review flow and prerequisites screen are the right precedent here.

Stage two: weighted ranking. The ranking score should be transparent and stored alongside the recommendation.

score_base =
  0.40 * skill_fit
+ 0.20 * availability_fit
+ 0.15 * contribution_similarity
+ 0.10 * explicit_preference_fit
+ 0.10 * reliability_score
+ 0.05 * recent_activity_score

adjustments =
+ newcomer_boost
- risk_penalty
- response_penalty

Use the following exact mechanics:

SignalExact implementation
skill_fitWeighted match of required and desired skills. Required skills count more than desired. Skill levels should be ordinal: familiar, working, strong, expert.
availability_fitCompare estimated_hours_per_week, duration_weeks, start window, and timezone-overlap requirement against volunteer availability.
contribution_similarityUse prior completed work, attached portfolio links, repository history, or review history to estimate similarity to scope and deliverables.
explicit_preference_fitCompare volunteer preferences on cause areas, work types, remote/on-site, sync/async, and languages to opportunity metadata.
reliability_scoreBayesian average of completion rate, reviewer ratings, check-in compliance, and no-show history. Start every new user at neutral, not low.
recent_activity_scoreReward current engagement lightly so dormant profiles do not dominate.
newcomer_boostAdd a small positive adjustment only on opportunities marked beginner_friendly, provided hard prerequisites are met.
risk_penaltyPenalize unresolved moderation flags, repeated unresponsiveness, or safety noncompliance.
response_penaltyPenalize maintainers or volunteers who regularly ignore applications or invitations, to improve marketplace hygiene.

Two fairness rules should be hard-coded. First, reputation must never be the main gate for beginner-friendly work; otherwise the platform becomes a closed loop where incumbents get all the opportunities. GitHub’s good first issue pattern and CHAOSS’s newcomer-experience framing both argue for deliberate newcomer access. Second, maintainers must be shown a match explanation, not a black-box score, so they can override recommendations responsibly.

A good first-response policy is also essential. CHAOSS explicitly treats time to first response as a key signal of community health and newcomer retention, and Catchafire recommends organizations respond within two business days. For 2ix, I would make the product target median first human response under 24 hours, P90 under 48 hours, excluding bot responses from the metric.

The matching and onboarding flow should look like this:

sequenceDiagram
    participant V as Volunteer
    participant T as 2ix
    participant M as Maintainer
    participant R as Reviewer
    participant X as External Tools

    V->>T: Create profile, skills, availability, preferences
    T->>T: Check profile completeness and eligibility
    T->>V: Recommended opportunities with match reasons
    V->>T: Apply to opportunity
    T->>M: Notify application + ranked fit explanation
    M->>T: Review prerequisites, work samples, answers
    alt Interview required
        M->>V: Invite to interview
        V->>M: Attend interview / clarify scope
    else Low-risk scoped work
        M->>T: Start project directly
    end
    M->>T: Accept volunteer
    T->>X: Create/associate issue, task, discussion links
    T->>V: Onboarding checklist + kickoff agenda
    V->>M: Kickoff meeting
    T->>T: Create baseline task snapshot and check-in schedule
    V->>T: Progress updates + artifacts
    R->>T: Review deliverable
    T->>V: Approval, revisions, or handoff request

The onboarding content itself should be structured, not improvised. The GSoC bonding model is a strong template: read the README and contribution guide, join the communication channel, gain repository/tool access, set up the environment, understand the work plan, and start with small preliminary tasks. GitHub’s community health files and contribution guidelines reinforce this. Therefore every new 2ix assignment should automatically generate an onboarding checklist with six required items: project overview read, code of conduct acknowledged, access granted, environment/setup completed, kickoff held, first progress update submitted.

Durable project memory, data model, and APIs

The central product insight is that matching without memory creates volunteer churn, and memory without structured work creates stale documentation. So 2ix should implement durable project memory as a hybrid canonical ledger: the platform stores canonical states, handoff notes, review records, artifact manifests, and snapshots of linked work, while still treating repositories, issue trackers, docs, and design tools as authoritative external evidence. GitHub Projects, linked issues/PRs, and discussions all point in this direction: real work spans multiple repositories and tools, but still benefits from a single cross-project planning surface with custom fields and automation.

Memory designBenefitsFailure modeRecommendation
Centralized copy-all memorySimple reading experience inside 2ix; easy searchDiverges from source systems; high sync and privacy burdenAvoid as the default
Federated link-only memoryLowest duplication; respects existing toolsLoses continuity when links rot or context moves; weak searchBetter than copy-all, but incomplete
Hybrid canonical ledger plus linked artifactsKeeps task continuity, review history, and handoff durability while preserving external systems of recordSlightly more modeling effortRecommended

The core model should distinguish five concepts:

EntityMeaningWhy it exists
projectLong-lived mission/workstreamParent container for many opportunities and assignments
opportunityRecruitable unit of workWhat people browse, apply to, or are invited into
assignmentBinding between volunteer and opportunityTracks who is doing what and under what terms
work_itemCanonical tracked contribution unitHolds status, versions, links, and state transitions
handoff_packetRequired continuity documentPrevents knowledge loss when work changes hands

To make memory durable, work_item should use versioned state plus append-only events.

TableMinimum columns
work_itemsid, project_id, opportunity_id, current_state, current_version, current_assignee_id, maintainer_id, reviewer_id, risk_level, last_snapshot_at
work_item_versionswork_item_id, version_no, state, summary_md, blockers_md, next_steps_md, acceptance_state, created_by, created_at
work_item_eventsid, work_item_id, event_type, payload_json, actor_id, created_at
handoff_packetsid, work_item_id, from_user_id, to_user_id, state_version, status, urgency, confidence, created_at, accepted_at
handoff_packet_versionshandoff_packet_id, version_no, context_md, what_changed_md, open_questions_md, blockers_md, recommended_next_actions_md, artifact_manifest_json
external_linksid, work_item_id, provider, kind, url, external_id, snapshot_title, snapshot_status, last_synced_at, content_hash
artifactsid, work_item_id, kind, storage_key, mime_type, sha256, visibility, uploaded_by, created_at
reviewsid, assignment_id, reviewer_id, decision, criteria_scores_json, feedback_md, created_at
reputation_ledgerid, user_id, source_type, source_id, delta_json, created_at
moderation_casesid, subject_user_id, reporter_id, context_type, status, decision, created_at, closed_at
audit_logsid, actor_id, entity_type, entity_id, action, before_json, after_json, created_at

The relationship between versions and events matters. Events answer “what changed and when”; versions answer “what was the canonical state at a specific point”; and handoff packets answer “what does the next person need to know right now.” This is the minimum memory model that can survive volunteer turnover.

A handoff packet should be mandatory for any assignment that is completed, paused, abandoned, or reassigned. The structured handoff flow should be this:

sequenceDiagram
    participant V as Outgoing Volunteer
    participant T as 2ix
    participant M as Maintainer
    participant N as Incoming Volunteer
    participant R as Reviewer

    V->>T: Start handoff / completion
    T->>V: Require structured handoff template
    V->>T: Submit blockers, state, links, artifacts, next steps
    T->>M: Review handoff completeness
    M->>T: Accept or request clarification
    alt Successor assigned
        T->>N: Notify incoming volunteer
        N->>T: Acknowledge handoff
        T->>R: Optional reviewer confirmation for sensitive work
        T->>M: Mark work_item reassigned / resumed
    else No successor yet
        T->>M: Mark work_item paused with searchable handoff packet
    end

Every handoff packet should require these exact fields: state summary, completed work, unfinished work, blockers, risks, next three actions, linked artifacts, linked code/issues/docs, people to ask, confidence level, and last verified date. Catchafire’s emphasis on regular check-ins, shared folders, and actionable feedback provides the practical collaboration precedent here, while GitHub’s issue/PR linking and Projects custom fields provide the external-system linkage pattern.

The API should be REST-first, because the write patterns are transactional and role-sensitive. A read-optimized GraphQL layer can come later, but the operational core should be explicit and boring.

EndpointMethodPurpose
/v1/auth/oauth/{provider}/startPOSTStart GitHub/GitLab/Google auth
/v1/auth/oauth/{provider}/callbackPOSTComplete OAuth
/v1/meGET/PATCHRead or update own profile
/v1/me/skillsPUTReplace normalized skill profile
/v1/me/availabilityPUTReplace availability model
/v1/organizationsPOSTCreate organization
/v1/organizations/{id}GET/PATCHRead or update organization
/v1/organizations/{id}/verify-domainPOSTBegin org verification
/v1/projectsPOSTCreate project
/v1/projects/{id}GET/PATCHRead or update project
/v1/projects/{id}/readinessGETCompute readiness score from docs/labels/activity
/v1/projects/{id}/syncPOSTPull latest external state
/v1/opportunitiesPOSTCreate opportunity
/v1/opportunitiesGETSearch opportunities with filters
/v1/opportunities/{id}GET/PATCHRead or edit opportunity
/v1/opportunities/{id}/publishPOSTMove from draft to published
/v1/opportunities/{id}/applyPOSTVolunteer application
/v1/opportunities/{id}/invitePOSTMaintainer invite
/v1/opportunities/{id}/candidatesGETRanked candidate list with explainability
/v1/applications/{id}/decisionPOSTAccept, pass, waitlist, interview
/v1/assignmentsPOSTCreate assignment after match
/v1/assignments/{id}GETGet assignment
/v1/assignments/{id}/updatesPOSTAdd progress update
/v1/assignments/{id}/completePOSTMark ready for review
/v1/work-items/{id}GETCurrent canonical work-item state
/v1/work-items/{id}/versionsGETVersion history
/v1/work-items/{id}/eventsPOSTAppend event
/v1/work-items/{id}/statePUTUpdate canonical version with optimistic locking
/v1/work-items/{id}/linksPOSTAttach repo/issue/doc/discussion link
/v1/work-items/{id}/timelineGETUnified activity feed
/v1/handoffsPOSTCreate handoff packet
/v1/handoffs/{id}GET/PATCHRead or edit handoff
/v1/handoffs/{id}/acceptPOSTAccept handoff
/v1/reviewsPOSTCreate structured review
/v1/searchGETCross-entity search over opportunities, projects, handoffs, artifacts
/v1/recommendations/meGETPersonalized recommendations
/v1/reportsPOSTReport abuse or misrepresentation
/v1/moderation/casesGETModerator queue
/v1/webhooks/githubPOSTGitHub connector inbound
/v1/webhooks/gitlabPOSTGitLab connector inbound
/v1/webhooks/jiraPOSTJira connector inbound

Two implementation rules are non-negotiable. Every state-changing write should require optimistic version checks so one maintainer cannot silently overwrite another’s update, and every external link should store a small snapshot such as title, status, assignee, and last synchronized timestamp so search still works even if the external service is temporarily unavailable. GitHub’s linked-issue model and Project synchronization make this hybrid snapshot pattern especially compelling.

UI and UX flows

The product experience should feel closer to GitHub Issues + Projects + a skills marketplace than to a generic volunteer signup form. The interface should make three things obvious at all times: what the work is, why this match exists, and what happens next. That is important because successful open-source and volunteer systems do not merely surface opportunities; they reduce uncertainty around norms, scope, and follow-through. GitHub’s contribution guidance, issue labels, community health files, and Discussions model all point in this direction.

The following screens are the key UX surfaces.

Volunteer home and match inbox

+--------------------------------------------------------------------------------+
| 2ix | Search | My Matches | Active Work | Messages | Profile | Help            |
+--------------------------------------------------------------------------------+
| Filters                        | Recommended for you                            |
| - Cause areas                  | ---------------------------------------------- |
| - Work type                    | [84%] Improve onboarding docs                  |
| - Skill level                  | civic-tech • docs • remote • 4h/week           |
| - Availability                 | Why matched: doc-writing, async, beginner-fit  |
| - Remote / onsite              | Deliverables: setup guide + issue cleanup      |
| - Duration                     | Actions: View | Save | Ask question | Apply    |
| - Beginner-friendly            | ---------------------------------------------- |
| - Verified org only            | [79%] Triage accessibility issues              |
|                                | ...                                            |
|--------------------------------+-----------------------------------------------|
| Onboarding checklist           | Active assignments                             |
| - Complete profile             | - Docs guide revamp                            |
| - Add portfolio links          | - Volunteer FAQ cleanup                        |
| - Set weekly availability      |                                               |
+--------------------------------------------------------------------------------+

This screen should expose why matched on every recommendation card. That explainability is not cosmetic; it gives volunteers confidence and tells them how to improve their profile. Idealist’s search-by-skill/cause/location pattern supports the filter model, and Catchafire’s qualifications/work-sample flow supports the visible readiness checklist.

Opportunity detail page

+--------------------------------------------------------------------------------+
| Title: Improve onboarding docs for new contributors                     [84%] |
| civic-tech | docs | remote | beginner-friendly | 1-2 weeks                     |
+--------------------------------------------------------------------------------+
| Summary                                                                        |
| Single-sentence value statement about why this work matters                    |
|                                                                                |
| Deliverables                                                                   |
| - Updated getting-started page                                                 |
| - Linked screenshots or GIFs                                                   |
| - Final PR or doc link                                                         |
|                                                                                |
| Prerequisites                     | Maintainer                                 |
| - Familiar with Markdown          | Name, org, response SLA, timezone          |
| - Can attend 30 min kickoff       | Reviewer                                   |
|                                   | Name(s), review mode                       |
| Acceptance criteria               | Project context                            |
| - All steps verified              | README | CONTRIBUTING | Code of Conduct     |
| - Reviewer approves               | Repo | Issues | Docs | Discussion           |
|                                   |                                             |
| Questions / discussion            | Actions                                     |
| Threaded Q&A before applying      | Apply | Save | Request invite | Report      |
+--------------------------------------------------------------------------------+

The right rail matters. It should show maintainer identity, reviewer identity, trust badges, and required context links. GitHub makes contributing guidelines and code-of-conduct links prominently discoverable for a reason, and 2ix should do the same by pulling those signals into the opportunity surface.

Maintainer workspace

+--------------------------------------------------------------------------------+
| Project: Civic Tech Docs                                                       |
| Tabs: Overview | Opportunities | Applicants | Work Board | Memory | Reviews    |
+--------------------------------------------------------------------------------+
| Left: Opportunity pipeline      | Center: Board                               |
| - Draft                         | Backlog | Ready | Matched | Active | Review  |
| - Ready for review              | card: title, assignee, due, risk, last note |
| - Published                     |                                               |
| - Paused                        |                                               |
|---------------------------------+----------------------------------------------|
| Applicants panel                | Memory panel                                 |
| ranked list + reasons           | latest handoff, artifacts, external links    |
| [accept] [interview] [pass]     | blockers, stale items, missing handoffs      |
+--------------------------------------------------------------------------------+

This workspace should always combine queue management and memory visibility. A maintainer should not have to switch to a different subsystem to understand what a volunteer has done, what is stuck, or whether a handoff is missing.

Reviewer workbench

+--------------------------------------------------------------------------------+
| Review queue                                                                   |
+--------------------------------------------------------------------------------+
| Work item | Volunteer | Deliverables | Criteria status | Due | Action          |
|-----------+-----------+--------------+-----------------+-----+-----------------|
| Onboarding guide PR   | Alice        | 3/3 attached    | 4/5 passed | Today    |
| Accessibility audit   | Ben          | 2/2 attached    | pending     | Review   |
+--------------------------------------------------------------------------------+
| Structured review form                                                         |
| - Acceptance criteria checklist                                                |
| - Comments / requested changes                                                 |
| - Approve / reject / approve with follow-up                                    |
+--------------------------------------------------------------------------------+

This is the screen that operationalizes the distinct reviewer role. It should allow structured scoring against the opportunity’s acceptance criteria, not just free-form comments.

Handoff composer

+--------------------------------------------------------------------------------+
| Handoff packet for: Improve onboarding docs                                    |
+--------------------------------------------------------------------------------+
| Current state summary                                                          |
| What changed during this assignment                                            |
| Open blockers and risks                                                        |
| Recommended next three actions                                                 |
| Artifacts checklist                                                            |
| Linked repo / issue / doc / design references                                  |
| Confidence level: Low / Medium / High                                          |
| Urgency: Normal / High / Critical                                              |
| [Save draft] [Submit handoff]                                                  |
+--------------------------------------------------------------------------------+

This screen must refuse submission until all required handoff fields are complete. If the product is serious about being “project memory,” this is one of the few places where extra friction is absolutely justified.

Trust, privacy, moderation, metrics, and deployment

Privacy and security should be designed in from the beginning because 2ix will handle user identities, potentially sensitive volunteer history, private project conversations, and links into external work systems. OWASP is explicit that systems handling identities and private information need strong cryptography in transit and at rest, and that authentication and authorization must be treated as distinct problems. NIST SP 800-63B provides practical password guidance, and W3C recommends WCAG 2.2 as the current accessibility target for web applications. If 2ix will serve EU users, GDPR obligations are live; if it knowingly collects data about children under 13, COPPA may be implicated, so the simplest product policy is to set a clear minimum age or require special consent flows.

The exact control set should be this:

Control areaExact requirement for 2ix
AuthenticationOAuth with GitHub/GitLab/Google; passkeys supported; MFA required for organization owners, maintainers, reviewers, moderators
Password policyIf passwords are supported, minimum 8 characters, long passwords allowed, breached-password blocklist, no arbitrary composition rules
AuthorizationRBAC plus project-scoped permissions and row-level access rules; public browse separated from private workspaces
EncryptionTLS everywhere; object storage and PII columns encrypted at rest; signed URLs for artifacts
Data minimizationDo not require home address, legal name, or phone unless the specific opportunity requires it; default to coarse location and hidden email
AuditabilityAppend-only audit log for role changes, match decisions, review decisions, moderation actions, and external sync changes
File safetyVirus scanning, content-type validation, size limits, and secret scanning on uploads where possible
AccessibilityWCAG 2.2 AA target, keyboard-first navigation, visible focus states, clear error handling, accessible authentication flows
Retention and deletionUser export, account deletion, selective artifact retention policies, organization-level retention defaults
Regional complianceGDPR support for export/delete/consent logging; SCC-capable vendor posture if EU data crosses borders
Sensitive workHigher controls for security-sensitive or legal-sensitive opportunities; dual approval and private visibility available

GitHub’s community-management guidance is equally important on the trust side: fast, fair moderation builds trust and makes contributors feel safe and welcome. Discussions can be locked, edited, or converted; moderators can be delegated; and reported content should flow to maintainers or organizational moderators. Catchafire’s official help content also shows two crucial marketplace lessons: organizations should still vet volunteers rather than blindly trusting algorithmic selection, and applications containing inaccurate, defamatory, or abusive language should be investigated.

For 2ix, that should become a concrete trust system:

Trust objectExact mechanism
Verified organizationDomain verification, human review, policy acceptance, visible badge
Healthy projectReadiness score based on README, CONTRIBUTING, code of conduct, active maintenance, reviewer assigned, response SLA, beginner-friendly labels where applicable
Trusted maintainerCompleted maintainer training, MFA, acceptable response metrics, no unresolved moderation cases
Reviewer trustStructured review history, calibration against other reviewers, optional domain expertise tags
Volunteer reliabilityNeutral starting baseline, then Bayesian score from completion rate, communication consistency, and review outcomes
Safety escalationOne-click reporting from profiles, applications, discussions, messages, reviews, and handoffs
Enforcement ladderWarning → temporary limitation → suspension → organization-level restriction → permanent ban, with logged rationale and appeal path

The trust system should be assistive, not exclusionary. In practical terms, that means a volunteer with no history can still be matched to low-risk beginner-friendly work, while reputation matters more for high-risk, high-scope, or sensitive tasks. This is consistent with newcomer-friendly open-source practice and with the fact that algorithmic matching is only a recommendation, not an endorsement.

For metrics, 2ix should combine volunteer-marketplace measures with open-source community-health measures and standard software-delivery measures. CHAOSS provides especially good definitions for time to first response, new contributors, newcomer experience, documentation discoverability, change request closure ratio, and contributor absence factor, while DORA provides the default software-delivery performance metrics for operating the 2ix platform itself.

The KPI set should be this:

KPIDefinitionWhy it matters
Opportunity publish-to-apply conversion% of published opportunities receiving at least one valid applicationMeasures listing quality and marketplace liquidity
Median time to first human responseTime from application/question to first non-bot human responseStrong onboarding and retention predictor
Application-to-match rate% of valid applications that lead to assignmentMeasures market quality, not just traffic
Match-to-start rate% of accepted matches that enter active workDetects onboarding friction
First-week activation% of new assignments with kickoff + first progress update in 7 daysMeasures onboarding effectiveness
Completion rate% of assignments completed or cleanly handed offCore reliability measure
Review turnaroundTime from deliverable submission to review decisionKeeps volunteers from being stranded in limbo
Handoff completeness% of completed/reassigned work with valid handoff packetDirect measure of project memory durability
Documentation discoverability scoreSearch success, time-to-find, and user feedback on documentationMemory usefulness, not just memory existence
New contributorsCount of first-time contributors active in a periodGrowth and accessibility
Newcomer experience scoreSurvey + behavioral composite for first three assignmentsHealth of first-run experience
Change request closure ratioClosed change requests / open change requests in periodMaintainer capacity and queue health
Contributor absence factorMinimum number of contributors responsible for 50% of workContinuity risk detection
Org response compliance% of opportunities meeting configured response SLAMarketplace hygiene
Moderation TTRMean time to first moderator action on reportsSafety and trust

For operating the platform itself, use DORA-style measures on the 2ix codebase and infrastructure: deployment frequency, change lead time, failed deployment recovery time, change fail rate, and deployment rework rate. Those give a clean operational view of whether the team can evolve the product quickly without destabilizing it.

Because there is no stated stack constraint, the most implementable default architecture is a conservative one:

LayerRecommended default
FrontendReact/Next.js or equivalent SSR-capable web frontend
APITypeScript/Node.js or Go REST API with strict schema validation
Primary databasePostgreSQL with JSONB for flexible metadata and row-level security support
SearchPostgres full-text search for MVP; dedicated search index later for cross-artifact search
Background jobsQueue-backed workers for recommendations, sync, notifications, and moderation jobs
FilesObject storage with presigned upload/download URLs
External integrationsWebhooks first, scheduled pull as fallback
CachingRedis or equivalent for sessions, rate limiting, and queue coordination
ObservabilityStructured logs, traces, audit pipeline, product analytics, error aggregation
DeploymentContainerized services behind a managed load balancer; environment-per-branch optional
SecretsManaged secret store, never in app config or uploaded artifacts

The scale posture should be multi-tenant but org-scoped. Each organization gets its own policy defaults, visibility rules, reviewers, and moderation queue, while volunteer profiles can span many organizations. That keeps the marketplace open without making private project spaces porous.

A phased rollout is the safest way to ship this:

PhaseWhat should be included
MVPPublic opportunity browsing, volunteer profiles, structured applications, maintainer workspace, manual review, GitHub links, baseline handoff packets, organization verification
Phase twoPush invitations, reviewer workbench, moderation case management, project readiness scoring, search across artifacts, richer analytics
Phase threeVolunteer-originated proposals, broader external connectors, automated trust scoring, team projects, federation across multiple ecosystems

The end state is not merely a volunteer portal. It is a continuity engine for mission-driven work: a place where organizations can turn vague needs into structured opportunities, volunteers can find contributions that fit their time and skills, maintainers can receive help without losing control, reviewers can protect quality, and the project itself can remember what happened after any one person leaves. That is the product shape most consistent with the primary-source patterns from volunteer marketplaces, open-source contribution systems, and modern project-management tooling.