[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83272":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":13,"stars30d":13,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":23,"discoverSource":24},83272,"WorkMesh","pfwjrfp5hh-byte\u002FWorkMesh","pfwjrfp5hh-byte","Open-source AI-era employment platform connecting skills, jobs, enterprises, governance, and AI agents.",null,"TypeScript",103,6,2,0,43.74,"MIT License",false,"main",true,[],"2026-06-12 04:01:40","# WorkMesh\n\n**English** | [简体中文](README.zh.md)\n\n> Make every capability visible. Help every person affected by the AI transition find the next meaningful opportunity faster.\n\nWorkMesh, also referred to as the Future Work Platform, is an open-source prototype for future employment and workforce collaboration.\n\nIt explores how people, skills, jobs, enterprise demand, service fulfillment, governance operations, and AI-assisted decision support can be connected through one shared data loop. The goal is not to build another job board. The goal is to explore a more efficient, transparent, and explainable coordination network that offers more dignified support to people navigating unemployment, career transitions, flexible work, and continuous learning.\n\n![National Governance Cockpit](docs\u002Fscreenshots\u002Fopen-source\u002Fgovernance-home.png)\n\n---\n\n## A Note from the Initiator\n\nI am an ordinary humanities graduate, not a professional software engineer. Most of the code in this repository was completed with the help of AI. I was surprised by what AI could do, and I also felt the shared power behind `Hello World`. That led me to explore a skill-sharing system built around the idea of \"open-source skills.\" As more people face unemployment or career disruption during the AI transition, perhaps a system like this can become useful.\n\nFor the system to work in the real world, it would need backing from a government body or a large organization with strong public credibility. It aims to respond to several challenges: supporting people who lose their jobs, reducing resource imbalances between enterprises of different sizes, and improving oversight of capital flows.\n\nThis is as far as I can take the system with my current abilities. If you would like to contribute to the future, you can improve it through technology or share it so more people can prepare earlier.\n\n---\n\n## Why This Exists\n\nTraditional employment systems often split the same person into disconnected records: a resume on a recruitment website, training history on another platform, job-seeking status scattered across different systems, and delayed statistical reports on the governance side.\n\nWorkMesh explores a different model:\n\n1. A person registers once and receives a unique identity reference through a trusted government body or large organization, allowing a durable personal profile to grow over time. Future exploration may include Web3 technologies to make identity more trustworthy, unique, and resistant to tampering.\n2. An enterprise registers once and receives a unique identity reference through a trusted government body or large organization, allowing enterprise information to accumulate over time.\n3. A government body or trusted organization can use monitoring, governance, and allocation mechanisms to understand employment operations and encourage a more balanced flow of resources.\n4. The platform can turn skill gaps into learning paths and next actions.\n5. AI assistants can retrieve platform knowledge and invoke role-aware business capabilities.\n6. Governance teams can understand employment operations through shared metrics, risks, tasks, and audit trails.\n\nThe intended result is a living employment collaboration network: when one profile changes, the rest of the system can respond.\n\n---\n\n## Platform Overview\n\nThis repository contains a locally runnable multi-portal system:\n\n- A **Personal Web Portal** for workers, job seekers, and flexible talent.\n- An **Enterprise Portal** for recruitment, supply-demand collaboration, fulfillment, assets, and finance.\n- A **Governance Portal** for employment analysis, risk monitoring, and closed-loop resolution.\n- A **Mobile Registration Portal** that creates an account and a uniquely linked personal profile in one flow.\n- A **Shared API** for authentication, matching, RAG retrieval, Agent Skills, and cross-portal data access.\n\n### Portal Map\n\n| Service | Port | Entry URL | Primary Users | AI Surface |\n| --- | ---: | --- | --- | --- |\n| Enterprise Portal | `3000` | [http:\u002F\u002Flocalhost:3000\u002Fenterprise\u002Fdashboard](http:\u002F\u002Flocalhost:3000\u002Fenterprise\u002Fdashboard) | Recruiters, operators, enterprise admins | [Enterprise AI Assistant](http:\u002F\u002Flocalhost:3000\u002Fenterprise\u002Fai) |\n| Personal Web Portal | `5173` | [http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant](http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant) | Workers, job seekers, flexible talent | Opens in the Personal AI Workspace |\n| Governance Portal | `8000` | [http:\u002F\u002F127.0.0.1:8000\u002F#\u002Fen\u002Fcockpit](http:\u002F\u002F127.0.0.1:8000\u002F#\u002Fen\u002Fcockpit) | Employment service and governance teams | [Bodao AI](http:\u002F\u002F127.0.0.1:8000\u002F#\u002Fen\u002Fai) |\n| Mobile Registration Portal | `5174` | [http:\u002F\u002F127.0.0.1:5174\u002F#\u002Fregister](http:\u002F\u002F127.0.0.1:5174\u002F#\u002Fregister) | New users | Hands off to the Personal AI Workspace |\n| Shared API and Swagger | `3001` | [http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fdocs](http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fdocs) | Developers and integration partners | RAG and Agent Skills endpoints |\n| PostgreSQL | `5432` | `localhost:5432` | Shared infrastructure | Stores profiles, matching, RAG, and invocation audit records |\n\n> In the table above, `localhost` and `127.0.0.1` refer to the visitor's own computer. Publishing the repository does not automatically create a public website. After downloading the repository and running `.\u002Fdeploy.sh` or `.\u002Fstart-local-demo.sh`, users can access the system locally through these URLs.\n>\n> When deploying WorkMesh to a cloud server, replace `localhost` with the server IP address or your own domain, for example `http:\u002F\u002F203.0.113.10:3000\u002Fenterprise\u002Fdashboard`. For production deployments, configure HTTPS and reverse proxy routing through Nginx, Caddy, or a cloud gateway. Separate subdomains such as `enterprise.example.com`, `personal.example.com`, `governance.example.com`, and `api.example.com` are recommended.\n\n### Architecture\n\n```mermaid\nflowchart LR\n    Person[\"Personal Web Portal\u003Cbr\u002F>React + Vite\u003Cbr\u002F>5173\"] --> API[\"Shared API\u003Cbr\u002F>NestJS + Prisma\u003Cbr\u002F>3001\"]\n    Register[\"Mobile Registration\u003Cbr\u002F>React + Vite\u003Cbr\u002F>5174\"] --> API\n    Enterprise[\"Enterprise Portal\u003Cbr\u002F>Next.js\u003Cbr\u002F>3000\"] --> API\n    Governance[\"Governance Portal\u003Cbr\u002F>HTML + CSS + JS\u003Cbr\u002F>8000\"] --> API\n    API --> DB[(\"PostgreSQL\u003Cbr\u002F>5432\")]\n    API --> Match[\"Skill and Job\u003Cbr\u002F>Matching Engine\"]\n    API --> RAG[\"RAG Knowledge\u003Cbr\u002F>Documents\"]\n    API --> Skills[\"Agent Skills\u003Cbr\u002F>Router\"]\n    Skills --> Audit[\"Agent Invocation\u003Cbr\u002F>Audit Trail\"]\n    Match --> DB\n    RAG --> DB\n    Audit --> DB\n```\n\n### Design Principles\n\n- **One profile, many opportunities.** Registration creates a uniquely linked `User` and `PersonalProfile`.\n- **Structured capability first.** Standardized skill tags provide the basis for explainable matching.\n- **Cross-portal collaboration by default.** Personal profiles, enterprise jobs, and governance metrics share one database.\n- **AI is more than a chat window.** Assistants can retrieve knowledge and route requests to business Skills.\n- **Traceability matters.** Agent calls and governance workflows can leave audit records.\n- **Prototype honesty.** The repository presents the product direction while making production hardening work explicit.\n\n---\n\n## Core Product Concept\n\nThe following mechanisms describe the long-term direction of WorkMesh. The current repository already implements some of them. Features that are not yet complete are marked clearly later in this document.\n\n### Personal Profiles and Open-Source Skills\n\n- **Skills become recognizable tags.** Whether someone works freelance or full time, they can continue adding their skills. When demand appears, the system can identify more suitable people.\n- **Learning continues when skills are missing.** Users can study a target skill or publish a learning request so someone with that skill can teach them. After assessment, the learner can also receive the corresponding skill tag.\n- **Everyone can share skills.** People can open-source what they know, teach others, and receive compensation. Knowledge and experience can keep moving between people. From `Hello World` to `Hello Skill`.\n- **AI works through platform capabilities.** The assistant can call platform APIs instead of behaving like an isolated chatbot. Recommendations can take a person's current state into account, such as busy, available, or temporarily not working.\n\nExample: if someone has an \"electrical circuit repair\" skill, and an enterprise or individual publishes a matching request, a future version of the system could combine skill tags with a nearby `30km` distance search.\n\n### Enterprise Profiles and Supply-Demand Collaboration\n\n- **Enterprises become recognizable tags.** Business scope, qualifications, and capabilities can become detailed tags. Professional and trusted tags should take effect only after governance-side review.\n- **Enterprise scale is linked to fulfillment capacity.** The amount of orders an enterprise can accept through the platform can be connected to factors such as office space, staffing, and fulfillment capability. To increase its revenue limit, an enterprise should add the corresponding talent and production capacity.\n- **Skill-based recruitment connects to the Personal Portal.** When an enterprise publishes a job, the platform can match suitable talent and help fill capability gaps quickly. Future versions may introduce recruitment deposits or similar trust mechanisms to reduce false job listings.\n- **AI connects supply and demand.** Enterprises can publish collaboration offers and demand requests. AI can assist matching based on qualification tags and enterprise tags.\n\nExample: if an enterprise has a \"lawn mower manufacturing\" tag, and another enterprise or individual needs a product, a large order, or production support, a future version of the system could prioritize qualified enterprises in the same city and encourage regional collaboration.\n\n### Governance and Public Services\n\n- **Trusted identity.** Provide unique identity references for people and enterprises to reduce duplicate entities and false information.\n- **Tag governance.** Manage the recognition and review of skill tags and enterprise tags.\n- **Entity governance.** Manage registered people, verified enterprises, active jobs, employment conversions, risk events, and pending tasks.\n- **Layered governance.** Support national, provincial, municipal, and district perspectives.\n- **Closed-loop resolution.** Move from monitoring and assessment to dispatch, coordinated resolution, verification, and archival review.\n\n### Current Implementation and Future Direction\n\n| Capability | Current Repository Status | Future Direction |\n| --- | --- | --- |\n| Unique personal profile | Implemented: `User` and `PersonalProfile` are uniquely linked | Integrate authoritative identity verification |\n| Unique identity references for people and enterprises | Database entity IDs and integration tokens exist | Explore trusted organization backing, tamper-resistant credentials, and Web3 approaches |\n| Skill and job matching | Implemented scoring based on skill tags, region, and experience | Add geospatial coordinates and `30km` radius search |\n| Enterprise capability tag review | Product direction is defined | Build a tag review workflow |\n| Enterprise scale and fulfillment quota | Employment quota and quota review prototype implemented | Improve operating metrics, order limits, and deposit rules |\n| AI assistants | Keyword RAG, Skills routing, and invocation audits implemented | Add model orchestration, vector retrieval, and human confirmation boundaries |\n| Governance loop | Cockpit, risk, and task views exist | Improve real dispatch, resolution, and verification workflows |\n\n---\n\n## Personal Web Portal\n\n**Entry:** [http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant](http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant)\n\nThe Personal Portal is designed for people who genuinely need work opportunities. It gives users one place to understand their capabilities, discover opportunities, manage work, track income and credit, and decide what to learn next.\n\n### Personal AI Workspace\n\n![Personal AI Workspace](docs\u002Fscreenshots\u002Fopen-source\u002Fpersonal-home.png)\n\nThe Personal Portal opens with an AI workspace so users can begin with a real question instead of learning a complex menu structure.\n\nCore capabilities:\n\n- Ask about today's tasks, recommended opportunities, orders, income, credit, and learning suggestions.\n- Review AI recommendations based on the current profile and market demand.\n- Use quick commands to move directly into the next action.\n- Expand into detailed pages for jobs, skills, learning, exams, certificates, wallet, credit, and work status.\n- Update skills and availability so recommendations can continue to improve.\n\n### Personal Dashboard\n\n![Personal Dashboard](docs\u002Fscreenshots\u002Fopen-source\u002Fpersonal-dashboard.png)\n\nThe dashboard turns the same profile into an operational view: current availability, identity verification, credit, certificates, tasks, recommended jobs, income, and skill growth can all be reviewed in one place.\n\nTechnical notes:\n\n- Framework: React 18, TypeScript, Vite, Tailwind CSS, Zustand.\n- Router: `HashRouter`, with the AI workspace as the default route.\n- Shared data access: local demo `X-Integration-Token`.\n- AI search endpoint: `GET \u002Fapi\u002Fv1\u002Fmatching\u002Fai\u002Fsearch?q=...`.\n\n---\n\n## Enterprise Portal\n\n**Entry:** [http:\u002F\u002Flocalhost:3000\u002Fenterprise\u002Fdashboard](http:\u002F\u002Flocalhost:3000\u002Fenterprise\u002Fdashboard)\n\nThe Enterprise Portal is a complete enterprise workspace, not a single recruitment page. It organizes recruitment, supply-demand collaboration, fulfillment management, enterprise assets, finance, and compliance in one system.\n\n### Enterprise Dashboard\n\n![Enterprise Dashboard](docs\u002Fscreenshots\u002Fopen-source\u002Fenterprise-home.png)\n\nCore capabilities:\n\n- Review enterprise KPIs, activity, revenue, costs, profit, personnel, and operational summaries.\n- Navigate recruitment, supply-demand collaboration, orders, fulfillment, assets, finance, compliance, tasks, and notifications.\n- Use responsive desktop and mobile workspaces.\n- Open the Enterprise AI Assistant directly from the primary navigation.\n\n### Explainable Candidate Matching\n\n![Enterprise Candidate Matching](docs\u002Fscreenshots\u002Fopen-source\u002Fenterprise-candidate-matching.png)\n\nRecruitment is connected to the shared skill graph:\n\n- Browse candidates recommended for published roles.\n- Compare match scores, skill tags, regions, recommendation state, and data source.\n- See candidate lists refresh when personal profiles add relevant skills.\n- Use structured matching evidence to support human judgment.\n- Preserve access boundaries with enterprise-specific tokens.\n\n### Enterprise AI Assistant\n\n![Enterprise AI Assistant](docs\u002Fscreenshots\u002Fopen-source\u002Fenterprise-ai-assistant.png)\n\nThe Enterprise AI Assistant is a business collaboration assistant for real operational scenarios. Its quick commands show how enterprises can describe outcomes directly instead of navigating through every module:\n\n- Hire an electrician.\n- Request more employment quota.\n- Review delivery risk.\n- Generate a finance snapshot.\n\nTechnical notes:\n\n- Framework: Next.js 16, React 19, TypeScript, Tailwind CSS, TanStack Query, Zustand.\n- Desktop AI route: `\u002Fenterprise\u002Fai`.\n- Enterprise modules: dashboard, recruitment, supply-demand collaboration, orders and fulfillment, assets, finance, and compliance.\n- Shared data client: `workmesh-business\u002Fsrc\u002Flib\u002Fshared-api.ts`.\n\n---\n\n## Governance Portal\n\n**Entry:** [http:\u002F\u002F127.0.0.1:8000\u002F#\u002Fen\u002Fcockpit](http:\u002F\u002F127.0.0.1:8000\u002F#\u002Fen\u002Fcockpit)\n\nThe Governance Portal turns cross-portal activity into an operational picture that employment service and public governance teams can understand. Its goal is not only to display data, but to move issues into a traceable resolution loop.\n\n### National Governance Cockpit\n\n![National Governance Cockpit](docs\u002Fscreenshots\u002Fopen-source\u002Fgovernance-home.png)\n\nCore capabilities:\n\n- Manage registered people, verified enterprises, active jobs, employment conversions, risk events, and pending tasks.\n- Support the recognition, review, and governance of skill tags and enterprise tags.\n- Navigate entity governance, business supervision, risk and compliance, and platform governance.\n- Switch between national, provincial, municipal, and district perspectives.\n- Move from monitoring and assessment to archival review.\n\n### Bodao AI Governance Assistant\n\n![Bodao AI Governance Assistant](docs\u002Fscreenshots\u002Fopen-source\u002Fgovernance-ai-assistant.png)\n\nBodao AI demonstrates a governance assistant connected to six capability centers and thematic scenarios:\n\n- Query national high-risk events and resolution progress.\n- Analyze regions with the largest employment gaps.\n- Generate governance operations reports.\n- Identify tasks approaching SLA deadlines.\n\nThe assistant is explicitly positioned as a decision-support tool. Human review is still required before execution.\n\n### Governance Loop\n\n```mermaid\nflowchart LR\n    Monitor[\"01 Monitor\u003Cbr\u002F>Aggregate data and detect anomalies\"] --> Assess[\"02 Assess\u003Cbr\u002F>Apply rules and AI analysis\"]\n    Assess --> Dispatch[\"03 Dispatch\u003Cbr\u002F>Assign owners and deadlines\"]\n    Dispatch --> Resolve[\"04 Resolve\u003Cbr\u002F>Coordinate corrective action\"]\n    Resolve --> Verify[\"05 Verify\u003Cbr\u002F>Validate outcomes\"]\n    Verify --> Archive[\"06 Archive\u003Cbr\u002F>Capture cases and improve rules\"]\n```\n\nTechnical notes:\n\n- Framework: static HTML, CSS, and JavaScript.\n- Core routes: `#\u002Fen\u002Fcockpit`, `#\u002Fen\u002Fai`, `#\u002Fen\u002Fcenters`, and `#\u002Fen\u002Fgis`.\n- Governance metrics can be read from the Shared API with a governance integration token.\n\n---\n\n## Mobile Registration Portal\n\n**Entry:** [http:\u002F\u002F127.0.0.1:5174\u002F#\u002Fregister](http:\u002F\u002F127.0.0.1:5174\u002F#\u002Fregister)\n\n![Mobile Registration Portal](docs\u002Fscreenshots\u002Fopen-source\u002Fregister-home.png)\n\nRegistration is a critical part of the product loop. New users should not become disconnected accounts that cannot participate in matching.\n\nCore capabilities:\n\n- Register with a phone number, verification code, and password.\n- Validate password strength and agreement confirmation.\n- Write the new account to the `users` table.\n- Create a uniquely linked `personal_profiles` record.\n- Return `personalProfileId` after login for skills, demands, matching, and Agent Skills access.\n\nThe mobile registration route handles onboarding. Its current mobile AI panel file is still a placeholder and is not exposed as a formal route. After registration, the implemented AI experience is available in the Personal AI Workspace:\n\n[http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant](http:\u002F\u002F127.0.0.1:5173\u002F#\u002Fai-assistant)\n\n> Local demo verification code: `123456`. Replace it with a real SMS provider before deployment.\n\nTechnical notes:\n\n- Framework: React 18, TypeScript, Vite, Tailwind CSS, Zustand.\n- Mobile route: `#\u002Fregister`.\n- Account-profile invariant: each registered user is created together with a matching-ready personal profile.\n\n---\n\n## Shared API\n\n**Swagger:** [http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fdocs](http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fdocs)\n\n![Swagger API Documentation](docs\u002Fscreenshots\u002Fopen-source\u002Fapi-docs-home.png)\n\nThe Shared API is the collaboration layer behind all portals. It is built with NestJS, Prisma, PostgreSQL, and Swagger.\n\n### Core Responsibilities\n\n- User registration, login, logout, and refresh token management.\n- Personal profile, skill tag, and personal demand management.\n- Enterprise job publication and candidate matching.\n- Enterprise employment quota requests and governance review.\n- Cross-portal dashboard metrics.\n- RAG knowledge retrieval.\n- Agent Skills registration, routing, and invocation auditing.\n\n### Key Endpoints\n\n```text\nPOST \u002Fapi\u002Fv1\u002Fauth\u002Fmobile\u002Fregister\nPOST \u002Fapi\u002Fv1\u002Fauth\u002Fmobile\u002Flogin\n\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fskills\nPOST \u002Fapi\u002Fv1\u002Fmatching\u002Fpersonal-profiles\u002F:id\u002Fskills\nPOST \u002Fapi\u002Fv1\u002Fmatching\u002Fpersonal-profiles\u002F:id\u002Fdemands\nPOST \u002Fapi\u002Fv1\u002Fmatching\u002Fenterprises\u002F:id\u002Fjobs\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fjobs\u002F:id\u002Fmatches\n\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fdashboard\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fpeople\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fenterprises\nGET  \u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fquota-applications\nPUT  \u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fquota-applications\u002F:id\u002Freview\n\nGET  \u002Fapi\u002Fv1\u002Fagent\u002Fskills\nGET  \u002Fapi\u002Fv1\u002Fagent\u002Frag\u002Fsearch?q=registration\nPOST \u002Fapi\u002Fv1\u002Fagent\u002Fquery\n```\n\nFor the complete API surface, use Swagger or read the [shared database documentation](SHARED_DATABASE.md).\n\n### RAG and Agent Skills\n\nWhen the service starts, it registers platform knowledge documents and a small set of callable Agent Skills:\n\n| Skill | Purpose |\n| --- | --- |\n| `search_knowledge` | Retrieve product logic and platform knowledge from RAG documents |\n| `search_jobs` | Search published jobs |\n| `search_people` | Search personal profiles and skilled talent |\n| `list_skills` | Query standardized skill tags |\n| `get_my_profile` | Read the current user's linked personal profile |\n\n```mermaid\nsequenceDiagram\n    participant U as User\n    participant A as AI Assistant\n    participant R as RAG Documents\n    participant S as Agent Skills Router\n    participant D as PostgreSQL\n\n    U->>A: Ask about jobs, skills, people, or profile\n    A->>R: Retrieve platform knowledge\n    R-->>A: Return explainable context\n    A->>S: Route intent to one or more Skills\n    S->>D: Query profiles, jobs, skills, or governance data\n    D-->>S: Return structured results\n    S-->>A: Return Skill output\n    A-->>U: Respond with context and next actions\n    A->>D: Write invocation audit record\n```\n\n---\n\n## Shared Data Loop\n\nThe current prototype implements a runnable cross-portal matching flow:\n\n1. A new user registers through the Mobile Registration Portal.\n2. The API creates a `User` and a uniquely linked `PersonalProfile`.\n3. The user adds standardized skill tags such as `React`, `PLC Programming`, or `Nursing Services`.\n4. The API automatically refreshes matching results.\n5. The Enterprise Portal receives updated candidate recommendations and matching evidence.\n6. AI assistants can retrieve RAG context and invoke job, people, skill, or personal profile capabilities.\n7. The Governance Portal receives aggregated operational metrics.\n\n```mermaid\nflowchart TD\n    Registration[\"Mobile Registration\"] --> Profile[\"User + PersonalProfile\"]\n    Profile --> Skills[\"Structured Skill Tags\"]\n    Skills --> Refresh[\"Automatic Match Refresh\"]\n    Jobs[\"Enterprise Jobs\"] --> Refresh\n    Refresh --> Candidates[\"Explainable Candidate Matching\"]\n    Candidates --> Enterprise[\"Enterprise Decision\"]\n    Profile --> Assistant[\"AI Assistants\"]\n    Jobs --> Assistant\n    Assistant --> Audit[\"Invocation Audit Trail\"]\n    Profile --> Governance[\"Governance Metrics\"]\n    Jobs --> Governance\n    Candidates --> Governance\n```\n\n### Seeded Demo Data\n\nRunning the seed command creates:\n\n- `6` enterprises across information technology, smart manufacturing, healthcare, construction, e-commerce, and logistics.\n- `36` personal profiles, including `25` generated with a fixed random seed.\n- `34` standardized skill tags.\n- `14` published jobs.\n- `7` enterprise procurement demands.\n- `3` personal demands.\n- `6` enterprise recruitment contacts.\n- Candidate matching, enterprise quota applications, and governance summary data.\n\n### Data Model\n\nThe Prisma schema is located at `workmesh-business\u002Fserver\u002Fprisma\u002Fschema.prisma`.\n\n| Domain | Representative Models |\n| --- | --- |\n| Identity | `User`, `RefreshToken`, `IntegrationAccessToken` |\n| Personal Profile | `PersonalProfile`, `PersonalSkill`, `PersonalDemand`, `PersonalDemandMatch` |\n| Enterprise | `Enterprise`, `EnterpriseMember`, `EmploymentQuota`, `QuotaApplication` |\n| Recruitment | `Job`, `JobSkillTag`, `JobTalentMatch`, `Candidate`, `Interview` |\n| Fulfillment | `Order`, `OrderMilestone`, `OrderPayment` |\n| Assets and Finance | `Asset`, `AssetTransfer`, `MaintenanceOrder`, `FinanceAccount`, `Expense`, `Budget` |\n| Governance | `RiskRecord`, `ComplianceTask`, `Notification`, `TodoItem` |\n| Intelligence | `RagDocument`, `AgentSkill`, `AgentInvocation` |\n\n---\n\n## Quick Start\n\n### Option 1: One-Command Docker Deployment\n\nFor the shortest path from a fresh clone to a runnable deployment:\n\n```bash\n.\u002Fdeploy.sh\n```\n\nThe script builds and starts PostgreSQL, the Shared API, and all four portals through Docker Compose. It then waits for services to become ready and runs smoke checks automatically.\n\nBefore exposing a deployment publicly, override the demo credentials:\n\n```bash\ncp .env.deploy.example .env.deploy\n```\n\nEdit `.env.deploy`, then run `.\u002Fdeploy.sh`. To stop the deployment:\n\n```bash\ndocker compose down\n```\n\n### Option 2: Local Development Mode\n\nRequirements:\n\n- macOS or Linux\n- Node.js and npm\n- Docker with Docker Compose, or a local PostgreSQL 16 installation\n- Python 3\n\nFrom the repository root:\n\n```bash\n.\u002Fstart-local-demo.sh\n```\n\nThe script:\n\n1. Creates missing local `.env` files from committed `.env.example` templates.\n2. Installs missing dependencies with `npm ci`.\n3. Checks and starts PostgreSQL through Docker Compose or Homebrew.\n4. Generates the Prisma Client, pushes the Prisma schema, and seeds demo data.\n5. Starts the API, Enterprise Portal, Personal Web Portal, Mobile Registration Portal, and Governance Portal.\n\nVerify and stop:\n\n```bash\n.\u002Fverify-local-demo.sh\n.\u002Fstop-local-demo.sh\n```\n\nTo stop the Docker database container as well:\n\n```bash\n.\u002Fstop-local-demo.sh --database\n```\n\nBefore publishing a release, validate lockfiles, scripts, and all production builds:\n\n```bash\n.\u002Fverify-open-source.sh\n```\n\n### Local Demo Tokens\n\n```text\nPersonal Portal:   personal-demo-token-2026\nEnterprise Portal: enterprise-demo-token-2026\nGovernance Portal: governance-demo-token-2026\n```\n\nThese tokens are for local development only. Replace them and move secrets into a proper secret manager before any public deployment.\n\nVerify the Shared API:\n\n```bash\ncurl http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fv1\u002Fagent\u002Fskills \\\n  -H 'X-Integration-Token: personal-demo-token-2026'\n```\n\n```bash\ncurl http:\u002F\u002Flocalhost:3001\u002Fapi\u002Fv1\u002Fmatching\u002Fgovernance\u002Fdashboard \\\n  -H 'X-Integration-Token: governance-demo-token-2026'\n```\n\n---\n\n## Repository Structure\n\n```text\n.\n├── workmesh-business\u002F                # Enterprise Portal: Next.js\n│   └── server\u002F                       # Shared API: NestJS + Prisma + PostgreSQL\n├── workmesh-app\u002F\n│   ├── portal\u002F                       # Personal Web Portal: React + Vite\n│   └── app\u002F                          # Mobile registration and personal mobile prototype\n├── workmesh-governance\u002F              # Governance Portal: static web application\n├── docs\u002Fscreenshots\u002Fopen-source\u002F     # README screenshots\n├── scripts\u002F                          # Documentation automation\n├── SHARED_DATABASE.md                # Shared database and integration notes\n├── start-local-demo.sh               # One-command local demo startup\n├── verify-local-demo.sh              # Portal and API smoke checks\n├── verify-open-source.sh             # Lockfile and production build checks\n└── stop-local-demo.sh                # Local service shutdown\n```\n\n### Technology Stack\n\n| Layer | Technology |\n| --- | --- |\n| Enterprise Portal | Next.js 16, React 19, TypeScript, Tailwind CSS, TanStack Query, Zustand |\n| Personal Web Portal | React 18, TypeScript, Vite, Tailwind CSS, Zustand |\n| Mobile Registration Portal | React 18, TypeScript, Vite, Tailwind CSS, Zustand |\n| Governance Portal | HTML, CSS, JavaScript |\n| Shared API | NestJS 11, Prisma 7, Swagger |\n| Database | PostgreSQL 16 |\n| Intelligence | RAG document retrieval, Agent Skills routing, invocation audit records |\n\n---\n\n## Current Status and Engineering Boundaries\n\nThis repository is a runnable open-source prototype. It demonstrates the product architecture and the first cross-portal data loops.\n\nImplemented:\n\n- Multi-portal shared database access.\n- Registration and uniquely linked personal profiles.\n- Structured skills and automatic job-candidate matching.\n- Enterprise jobs, personal demands, and governance aggregation.\n- Personal, enterprise, and governance AI assistant surfaces.\n- RAG knowledge documents, Agent Skills routing, and invocation auditing.\n- Swagger API documentation.\n- Reproducible local startup, Docker deployment, and screenshot generation scripts.\n\nNext engineering priorities:\n\n- Replace local SMS and authentication shortcuts with production-grade services.\n- Introduce authoritative identity verification and evaluate trusted credentials or Web3 approaches.\n- Upgrade region matching to geospatial coordinates and nearby `30km` radius searches.\n- Upgrade keyword retrieval to embedding-based vector retrieval.\n- Add model-driven tool orchestration with clear safety and approval boundaries.\n- Introduce resource-level authorization and a complete RBAC policy.\n- Build enterprise tag review, recruitment deposit, and order quota rules.\n- Add automated unit, integration, and end-to-end tests, plus observability.\n\n---\n\n## Refresh README Screenshots\n\nStart the local demo first, then run:\n\n```bash\nnode scripts\u002Fcapture-readme-screenshots.mjs\n```\n\nThe script regenerates the README screenshots under `docs\u002Fscreenshots\u002Fopen-source\u002F`.\n\n---\n\n## Public Release Checklist\n\nBefore publishing the repository:\n\n- Confirm that the included MIT `LICENSE` matches your organization's release policy.\n- Remove or rotate all development tokens before deploying outside a local environment.\n- Review `.env` files and generated artifacts before the first public commit.\n- Keep `DEMO_ALLOW_ALL_ORIGINS=true` limited to local demonstrations.\n- Keep committed `.env.example` templates free of production secrets.\n- Keep the included GitHub Actions build verification green.\n\n---\n\n## Community and Legal\n\n- [Contributing Guide](CONTRIBUTING.md)\n- [Security Policy](SECURITY.md)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n- [Shared Database Documentation](SHARED_DATABASE.md)\n- [Third-Party Notices](THIRD_PARTY_NOTICES.md)\n- [Distribution Notice](NOTICE)\n- [Trademark Notice](TRADEMARKS.md)\n- [MIT License](LICENSE)\n\n---\n\n## Vision\n\nThe future of work should be more than a larger pile of job listings.\n\nWhen someone loses a job, the system should help them understand what they can already do, identify realistic opportunities, see the gap between today and the next role, and find a path forward. When an enterprise needs talent, the system should help it discover people with genuine capabilities instead of forcing both sides through repetitive information searches. When a governance team needs to act, the system should provide timely, explainable, and traceable evidence.\n\nWorkMesh is an exploration of the future and a starting point for building it together.\n","2026-06-11 04:10:44","CREATED_QUERY"]