AAYMA
RU
Войти

Career Quest

Полноценный карьерный навигатор: считает разрыв между профилем сотрудника и целевой ролью/грейдом, строит дорожную карту и объяснимые…

Доведённый продукт
Команда «AIVIOM» 50💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: AIVIOM
Кейс HackAlem.ai: Менеджмент — Halyk Bank · кейс 1
Стадия: Доведённый продукт

Задача кейса: «Career Quest»: AI-навигатор, связывающий навыки сотрудника с шагами развития

Суть

Полноценный карьерный навигатор: считает разрыв между профилем сотрудника и целевой ролью/грейдом, строит дорожную карту и объяснимые AI-рекомендации, принимает подтверждения выполненной работы и начисляет навыки и XP после верификации. Есть отдельные рабочие места для пяти ролей (сотрудник, эдвайзер, менеджер, супервайзер, HR) и HR-аналитика.

Как устроено

Модульный монолит на TypeScript: React 19 + Vite, сервер на Express и SQLite (better-sqlite3). Чистые доменные функции считают эффективные навыки, пробелы, допустимость активностей, предпросмотр, дорожную карту и аналитику. Слой рекомендаций вызывает OpenAI (gpt-5.4-mini) только среди активностей, которые сервер признал допустимыми; ответ проверяется, есть режимы live_ai / cached_live_ai / rules_fallback / unavailable, а также лимит расходов на AI и шлюз для жюри. Навыки и XP меняются только после принятого подтверждения; права ролей проверяются на сервере, все действия пишутся в журнал аудита.

Ключевые решения

  • анализ пробелов в навыках
  • правила допустимости активностей
  • дорожная карта развития
  • ролевой доступ на сервере (RBAC)
  • журнал XP и наград
  • Zod-валидация
  • откат на правила без LLM
  • локализация RU/KK/EN
  • журнал аудита

Особенности

Рекомендация строго отделена от действий, меняющих состояние: предпросмотр ничего не меняет, а навыки начисляются только после принятого подтверждения и защищены от повторного зачисления. AI выбирает только среди активностей, одобренных сервером, а источник каждого ответа помечен (live AI / кеш / правила). Есть задеплоенное демо и интерфейс на трёх языках.

Стек

TypeScript · React 19 · Vite 6 · Express 4 · SQLite · better-sqlite3 · Zod · OpenAI Node SDK · Docker

Модели

gpt-5.4-mini


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-6ee0248f-aiviom.

README

README.md

Career Quest · AIVIOM

AI-powered career development navigator for HackAlem AI · Case 1 — Halyk Bank.

Deployed demo: https://career.aiviom.ai

Career Quest helps an employee understand the gap between their current profile and a target role/grade, build a feasible development path, receive explainable AI-assisted recommendations, submit evidence of completed work, and see verified progress. Managers, advisors, supervisors, and HR receive role-specific workflows for approvals, assignments, analytics, imports, and audit.

The repository contains the complete application, source dataset, demo seed, API/server code, frontend, tests, Docker configuration, and technical documentation required to run and inspect the solution independently.


1. What the solution does

The main product flow is:

Employee profile
    ↓
Target role / grade
    ↓
Skill gaps and eligibility rules
    ↓
Roadmap + explainable recommendation
    ↓
Preview / plan / completion evidence
    ↓
Advisor or manager verification where required
    ↓
Skill recalculation + XP/reward ledger
    ↓
HR analytics + audit trail

The application supports the following demo roles:

  • Employee — profile, goal, roadmap, recommendations, plan, completion requests, side quests, help requests, rewards.
  • Advisor — completion verification and side-quest review.
  • Manager — team-scoped actions, assignments, resource approvals, help resolution, analytics.
  • Supervisor — policy approvals, audit access, analytics.
  • HR — organization-wide analytics, import preview/commit, assignments, audit.

The application intentionally separates recommendation from state-changing actions. A preview or AI recommendation does not grant skills. Skills/XP change only after a permitted completion or accepted side quest.


2. Architecture

Career Quest is implemented as a TypeScript modular monolith.

Browser
  │
  │ React 19 + Vite 6
  ▼
Express 4 application server
  │
  ├── Session / demo workspace isolation
  ├── Server-side RBAC and scope checks
  ├── Domain calculations
  │     ├── effective skills
  │     ├── gaps
  │     ├── eligibility
  │     ├── preview
  │     ├── roadmap
  │     └── analytics
  ├── Workflows
  │     ├── completions
  │     ├── assignments
  │     ├── side quests
  │     ├── approvals
  │     ├── rewards
  │     └── audit
  ├── Import validation
  └── AI recommendation layer
        ├── direct OpenAI API when OPENAI_API_KEY is configured
        ├── team judge gateway when configured
        └── explicit rules fallback when live AI is unavailable
  │
  ▼
SQLite / better-sqlite3

Main source directories

PathResponsibility
src/client/React UI, screens, API client, localization
src/server/Express API, sessions, RBAC, SQLite persistence, workflows, audit, AI budget/gateway
src/domain/Pure domain calculations, roadmap, analytics, import validation
src/ai/Recommendation orchestration and external opportunity search
src/shared/Shared types and RU/KK/EN localization contracts
data/source/Source case dataset
data/demo/Demo/import fixture
tests/Domain, server, integration, AI and localization tests
docs/Detailed technical/reviewer documentation

For a deeper implementation-oriented description, see docs/TECHNICAL_DOCUMENTATION.md.


3. Technologies

Runtime and application

  • Node.js 20.19+; Node 22 LTS is recommended.
  • TypeScript 5.8
  • React 19
  • Vite 6
  • Express 4
  • SQLite through better-sqlite3
  • Zod 3 for request/data validation
  • OpenAI Node SDK 6 for optional live AI
  • csv-parse for source/import parsing
  • Lucide React for UI icons

Development and delivery

  • npm + lockfile (package-lock.json)
  • Node built-in test runner executed through tsx
  • Docker / Docker Compose
  • Local SQLite persistence

Exact dependency versions are pinned by package-lock.json.


4. Requirements

For a normal local run:

  • Git
  • Node.js >= 20.19
  • npm
  • Internet access while installing npm dependencies

No separate database server is required.

On systems where better-sqlite3 cannot use a prebuilt binary, compilation may additionally require:

  • Python 3
  • make
  • a C/C++ compiler

The provided Docker image installs the native build toolchain automatically.


5. Installation

Option A — local Node.js

git clone https://github.com/BAITC-Hacks/hack-6ee0248f-aiviom.git
cd hack-6ee0248f-aiviom
npm ci

Optional environment configuration:

cp .env.example .env

A .env file is not required for the basic demo flow.

Option B — Docker

cp .env.example .env
docker compose build
docker compose up -d

The supplied Compose configuration publishes the application on:

http://127.0.0.1:3500

The container itself listens on port 3000.


6. Running the application

Development mode

npm run dev

Production-style local run

npm run build
npm start

By default open:

http://127.0.0.1:3000

Health check:

curl http://127.0.0.1:3000/health

Expected shape:

{
  "ok": true,
  "service": "career-quest",
  "version": "development"
}

7. Environment variables

All supported variables are listed in .env.example.

VariableDefault / examplePurpose
PORT3000HTTP port used by the Node server
HOST127.0.0.1 locallyInterface to bind to
DATABASE_PATH.runtime/career-quest.sqliteSQLite database file
OPENAI_API_KEYemptyOptional server-side live OpenAI access
OPENAI_MODELgpt-5.4-miniModel requested by the AI layer
AI_BUDGET_USD30Conservative application-side AI reservation budget
DEMO_ENABLEDtrueEnables demo workspace/session APIs
JUDGE_GATEWAY_URLhttps://career.aiviom.aiTeam recommendation gateway; use off to disable
AI_MODEunsetSet to offline to disable remote AI calls
TRUST_PROXYusually unset locallySet by deployment when running behind a trusted proxy
RELEASE_SHAdevelopment/localVersion returned by /health

AI behavior

The recommendation endpoint has explicit modes:

  • live_ai — validated response from a live model.
  • cached_live_ai — validated cached live result.
  • rules_fallback — deterministic domain fallback; not presented as an LLM response.
  • unavailable — no meaningful recommendation can be produced, e.g. no goal or no gaps/candidates.

A personal OpenAI key is therefore not required to inspect the main product and domain flows.

Never commit .env, API keys, SQLite runtime files, logs, or tokens. The repository .gitignore excludes these files.


8. Main API surface

The browser UI uses the same server API that can be inspected manually.

Key endpoints include:

  • GET /health
  • GET /api/session
  • POST /api/session/switch
  • POST /api/demo/reset
  • POST /api/demo/date
  • GET /api/catalog
  • GET /api/employees
  • GET /api/employees/:id/profile
  • PUT /api/employees/:id/goal
  • GET /api/employees/:id/roadmap
  • POST /api/employees/:id/preview
  • POST /api/employees/:id/recommendations
  • POST /api/plan
  • POST /api/completion-requests
  • POST /api/completion-requests/:id/accept
  • GET/POST /api/side-quests
  • POST /api/side-quests/:id/review
  • POST /api/side-quests/:id/resource
  • POST /api/side-quests/:id/policy
  • POST /api/side-quests/:id/evidence
  • POST /api/side-quests/:id/accept
  • GET/POST /api/help
  • POST /api/assignments
  • GET /api/hr/analytics
  • POST /api/import/preview
  • POST /api/import/commit
  • GET /api/rewards
  • POST /api/rewards/:id/redeem
  • GET /api/audit

Detailed request examples are in docs/DEMO_API.md.


9. How to verify the main scenario

The following sequence is the recommended reviewer path.

Step 1 — open the deployed or local application

Deployed version:

https://career.aiviom.ai

Local version after npm start:

http://127.0.0.1:3000

Step 2 — Employee: inspect profile and target

  1. Keep or select the Employee demo identity.
  2. Open the employee profile.
  3. Inspect current role/grade, target role/grade, skills and gaps.
  4. Open the roadmap.
  5. Request recommendations.
  6. Inspect the recommendation explanation and alternative.

Expected result: recommendations refer to real catalog activities and are constrained by server-computed eligibility and current profile facts.

Step 3 — verify preview is non-mutating

  1. Select an eligible activity.
  2. Open its preview.
  3. Observe projected skill/gap changes.
  4. Refresh or reopen the real profile.

Expected result: preview does not permanently change skills or history.

Step 4 — submit a completion for verification

  1. As Employee, submit evidence for an eligible/completable activity.
  2. Switch to the Advisor identity.
  3. Open the pending completion request and accept it with a reason.
  4. Switch back to Employee.
  5. Reopen the profile/rewards.

Expected result: accepted completion can update effective skills and XP once. Repeating the same accepted operation must not grant a duplicate credit.

Step 5 — verify the side-quest workflow

  1. As Employee, create a side quest with deliverables and skill IDs.
  2. As Advisor, review it and define criteria plus allowed gain/cap.
  3. If the quest requires resources, switch to Manager and approve/reject the resource request.
  4. If it requires policy approval, switch to Supervisor and process that decision.
  5. As Employee, submit evidence.
  6. As Advisor, accept the evidence.

Expected result: approval of a proposal alone does not grant skills. Credit is created only after accepted evidence.

Step 6 — verify HR functions

  1. Switch to HR.
  2. Open HR analytics.
  3. Inspect gaps, participation, mandatory assignments and no-next-step cases.
  4. Use import preview with data/demo/import-example.json.
  5. Commit only after a valid preview.
  6. Verify that the imported employee appears and can be opened.
  7. Inspect the audit view.

Expected result: invalid imports do not partially mutate state; valid imports are committed through the server workflow.

Step 7 — verify persistence and reset

  1. Perform a state-changing demo action.
  2. Restart the application without deleting the SQLite file/volume.
  3. Confirm the state is still present.
  4. Use the UI demo reset only when you intentionally want to reset the current workspace.

For the extended reviewer sequence, see docs/13_REVIEWER_GUIDE.md.


10. Tests and technical checks

Run:

npm test
npm run typecheck
npm run build
npm run verify:source

Optional dependency security inspection:

npm audit

The test suite includes coverage for:

  • domain skill/gap calculations;
  • roadmap and prerequisite sequencing;
  • import validation and atomicity;
  • workspace isolation;
  • role/scope enforcement;
  • completion idempotency;
  • reward idempotency and overspend protection;
  • side-quest approval/evidence flows;
  • recommendation validation/fallback/cache behavior;
  • RU/KK/EN server/client localization.

The repository also includes reviewer/live smoke scripts under scripts/.


11. Data and persistence

The case dataset is stored under data/source/ and contains employees, events, skills, role profiles and activity history.

Runtime state is persisted in SQLite. Default local path:

.runtime/career-quest.sqlite

Docker uses a named volume mounted at:

/app/.runtime

The application creates isolated demo workspaces backed by an HTTP-only cq_session cookie. Switching demo identities changes the active identity inside the same demo workspace; it does not represent production SSO.


12. Security and integrity controls implemented in the demo

The code includes:

  • server-side role and employee/team scope checks;
  • isolated demo workspaces;
  • HTTP-only session cookie;
  • same-site request protections and same-origin write validation;
  • JSON body limit;
  • request validation with Zod;
  • idempotency guards for credits/rewards;
  • audit events for state-changing workflows;
  • AI output validation against server-side candidates/facts;
  • restricted judge gateway payload and model flow;
  • API keys kept on the server side.

This remains a competition/demo application. It does not claim production enterprise authentication or production SSO.


13. Known limitations

  • Demo identity switching is intentionally provided for judging and is not production authentication.
  • SQLite is appropriate for this self-contained demo deployment; a large production deployment would normally use a managed transactional database and a production identity provider.
  • External/live AI availability depends on configured credentials/gateway/network. The application exposes fallback modes instead of presenting fallback output as live AI.
  • Rewards and some demo policies are product demonstration policies, not Halyk Bank commitments.
  • Recommendations support career development decisions; they do not automatically promote, grade, or rank employees.

See docs/15_RELEASE_AND_LIMITATIONS.md for additional project-specific caveats.


14. Documentation map

Start here:


15. Deployment

The public demo is available at:

https://career.aiviom.ai

Docker deployment is included in the repository:

cp .env.example .env
docker compose build
docker compose up -d

Check health:

curl http://127.0.0.1:3500/health

Stop without deleting persistent data:

docker compose down

Do not add -v unless you intentionally want to delete the Docker volume and its SQLite state.


16. Quick reviewer checklist

  • Open https://career.aiviom.ai.
  • Verify employee profile, target and gaps.
  • Generate recommendation and inspect its mode/evidence.
  • Run a preview and confirm it does not mutate state.
  • Submit + approve a completion and confirm exactly one credit.
  • Exercise a side-quest approval/evidence path.
  • Open manager/supervisor/HR role views.
  • Preview and commit an HR import.
  • Inspect analytics and audit.
  • For local reproduction, run npm ci, npm run build, npm start.
  • Run npm test and npm run typecheck.

Team AIVIOM · HackAlem AI 2026

Звёзды
⭐ 1
Форки
0
Язык
TypeScript
Последний push
в прошлом месяце
Коммиты
116
Авторы
4
Файлы
128
Ветки
10

Авторы коммитов

Azat Kabiden 140Askhat Aubakirov 3askhat aubakirov 2Azat Kabiden 1

История коммитов

  • 2026-09-23 17:40Use exact README from docs/full-documentationAzat Kabiden
  • 2026-09-23 17:38Merge full documentation while preserving latest main functionalityAzat Kabiden
  • 2026-09-23 17:28Record verified final HackAlem release and judge evidenceAzat Kabiden
  • 2026-09-23 17:24Constrain AI choices with candidate-scoped schemaAzat Kabiden
  • 2026-09-23 17:21Guide AI to copy candidate-supported evidenceAzat Kabiden
  • 2026-09-23 17:13Document final judge workflow and add real conflict acceptanceAzat Kabiden
  • 2026-09-23 17:13Localize confirmed results and honor missing-skill zero semanticsAzat Kabiden
  • 2026-09-23 17:09Compare recommendation alternatives with verified evidenceAzat Kabiden
Все коммиты (116)
  • 2026-09-23 17:08Keep HR inspection selection stable during refreshAzat Kabiden
  • 2026-09-23 17:08Distinguish unassessed skills and clarify plan progressAzat Kabiden
  • 2026-09-23 17:08Update project documentation and READMEaskhat aubakirov
  • 2026-09-23 17:06Keep HR inspection selection stable during refreshAzat Kabiden
  • 2026-09-23 17:06Expose complete career path and HR evidence in UIAzat Kabiden
  • 2026-09-23 17:05Expose complete career path and HR evidence in UIAzat Kabiden
  • 2026-09-23 17:05Tighten localized and supported AI explanationsAzat Kabiden
  • 2026-09-23 17:04Tighten localized and supported AI explanationsAzat Kabiden
  • 2026-09-23 17:03Use full catalog evidence in local AI and gateway fallbacksAzat Kabiden
  • 2026-09-23 17:03Check roadmap unlocks at projected finish dateAzat Kabiden
  • 2026-09-23 17:02Check roadmap unlocks at projected finish dateAzat Kabiden
  • 2026-09-23 17:02Verify AI recommendations against full relevant historyAzat Kabiden
  • 2026-09-23 16:59Verify AI recommendations against full relevant historyAzat Kabiden
  • 2026-09-23 16:58Preserve plan budget edits and persist verified completion effectsAzat Kabiden
  • 2026-09-23 16:57Fix same-day credits and employee-skill analyticsAzat Kabiden
  • 2026-09-23 16:57Document pair-level catalog coverageAzat Kabiden
  • 2026-09-23 16:56Document pair-level catalog coverageAzat Kabiden
  • 2026-09-23 16:56Fix same-day credits and employee-skill analyticsAzat Kabiden
  • 2026-09-23 16:54Expose roadmap step effects for employee trajectoryAzat Kabiden
  • 2026-09-23 16:54Define trusted application credits and confirmed progress receiptsAzat Kabiden
  • 2026-09-23 16:53Expose roadmap step effects for employee trajectoryAzat Kabiden
  • 2026-09-23 16:53Define trusted application credits and confirmed progress receiptsAzat Kabiden
  • 2026-09-23 16:22Exclude owner private specification from working branchAzat Kabiden
  • 2026-09-23 16:22Document verified Atlas production release and compatibilityAzat Kabiden
  • 2026-09-23 16:21Merge remote-tracking branch 'origin/docs/full-documentation'Azat Kabiden
  • 2026-09-23 16:19Promote accepted Atlas release to main for immediate deploymentAzat Kabiden
  • 2026-09-23 16:17Record atlas acceptance and guarded post-hackathon rolloutAzat Kabiden
  • 2026-09-23 16:16Fit selector popup within dialog and viewportAzat Kabiden
  • 2026-09-23 16:14Clarify compact mobile labels and full section namesAzat Kabiden
  • 2026-09-23 16:14Let single quest detail fill narrow desktop gridAzat Kabiden
  • 2026-09-23 16:12Make selector value and tab exit accessibleAzat Kabiden
  • 2026-09-23 16:12Align product context with trilingual atlas releaseAzat Kabiden
  • 2026-09-23 16:11Align product context with trilingual atlas releaseAzat Kabiden
  • 2026-09-23 16:11Make selector value and tab exit accessibleAzat Kabiden
  • 2026-09-23 16:10Use one accessible styled selector throughout atlas UIAzat Kabiden
  • 2026-09-23 16:08Cover shared picker translations in the UI key auditAzat Kabiden
  • 2026-09-23 16:08Merge teammate documentation history and retain verified Atlas release factsAzat Kabiden
  • 2026-09-23 16:06Keep mobile progress captions above twelve pixelsAzat Kabiden
  • 2026-09-23 16:06Polish atlas language picker and document shipped designAzat Kabiden
  • 2026-09-23 16:05Verify localized oversized-import rejectionAzat Kabiden
  • 2026-09-23 16:05updating README for judges to easily readAskhat Aubakirov
  • 2026-09-23 16:04Remove internal gateway and workflow jargon from localized messagesAzat Kabiden
  • 2026-09-23 16:04Fix formatting in README.meAskhat Aubakirov
  • 2026-09-23 16:00Keep AI explanations in the requested languageAzat Kabiden
  • 2026-09-23 15:59Guard localized imports at the two-megabyte request limitAzat Kabiden
  • 2026-09-23 15:57Reflow atlas header and panels on narrow phonesAzat Kabiden
  • 2026-09-23 15:54Test all UI language keys and calendar formattingAzat Kabiden
  • 2026-09-23 15:54Use native button group for analytics sectionsAzat Kabiden
  • 2026-09-23 15:54Complete atlas localization and design contractAzat Kabiden
  • 2026-09-23 15:49Add atlas favicon assetAzat Kabiden
  • 2026-09-23 15:49Document separate Atlas release and reproducible multilingual verificationAzat Kabiden
  • 2026-09-23 15:49Build multilingual Career Quest atlas interfaceAzat Kabiden
  • 2026-09-23 15:49Keep AI rationale on localized labels and format countsAzat Kabiden
  • 2026-09-23 15:47Give import validation stable localized issue codes and structured warningsAzat Kabiden
  • 2026-09-23 15:47Polish Kazakh catalog and localize seeded demo evidenceAzat Kabiden
  • 2026-09-23 15:47Separate AI diagnostics from localized user messagesAzat Kabiden
  • 2026-09-23 15:46Separate AI diagnostics from localized user messagesAzat Kabiden
  • 2026-09-23 15:46Add explicit three-language live and independent gateway verificationAzat Kabiden
  • 2026-09-23 15:45Keep AI warning diagnostics separate from user-facing textAzat Kabiden
  • 2026-09-23 15:45Localize server recommendations, gateway and API errorsAzat Kabiden
  • 2026-09-23 15:45Polish Kazakh catalog and localize seeded demo evidenceAzat Kabiden
  • 2026-09-23 15:44Document localized contracts and refine Kazakh import copyAzat Kabiden
  • 2026-09-23 15:43Verify language negotiation and localized transport failuresAzat Kabiden
  • 2026-09-23 15:43Localize source catalog and demo labels for RU KK ENAzat Kabiden
  • 2026-09-23 15:42Bundle verified local font and record rebrand direction with locale testsAzat Kabiden
  • 2026-09-23 15:42Expose stable analytics caveat codes for localized presentationAzat Kabiden
  • 2026-09-23 15:42Add backward-compatible locale and recommendation presentation contractsAzat Kabiden
  • 2026-09-23 15:42Localize transport failures and capture each request languageAzat Kabiden
  • 2026-09-23 15:41Bundle verified local font and record rebrand direction with locale testsAzat Kabiden
  • 2026-09-23 15:40Give import validation stable localized issue codes and structured warningsAzat Kabiden
  • 2026-09-23 15:39Add backward-compatible locale and recommendation presentation contractsAzat Kabiden
  • 2026-09-23 15:29Record verified release and independent hosted jury accessAzat Kabiden
  • 2026-09-23 15:23Merge remote-tracking branch 'origin/main'Azat Kabiden
  • 2026-09-23 15:23Harden final workflows and jury gateway after independent auditAzat Kabiden
  • 2026-09-23 15:22Merge pull request #1 from BAITC-Hacks/docs/full-documentationAzat Kabiden
  • 2026-09-23 15:19docs: additional project documentationaskhat aubakirov
  • 2026-09-23 14:47Make jury import and clean-start checks reproducibleAzat Kabiden
  • 2026-09-23 14:35Refine verified evidence disclosure and advisor gain reviewAzat Kabiden
  • 2026-09-23 14:34Clarify evidence and per-skill review decisionsAzat Kabiden
  • 2026-09-23 14:31Complete responsive role actions and evidence revisionsAzat Kabiden
  • 2026-09-23 14:30Correct mandatory assignment audit fixtureAzat Kabiden
  • 2026-09-23 14:29Complete review revisions and readable mobile analyticsAzat Kabiden
  • 2026-09-23 14:25Align audit assignment fixture with completed-event ruleAzat Kabiden
  • 2026-09-23 14:22Harden review loops, scoped analytics, input safety and roadmap timingAzat Kabiden
  • 2026-09-23 14:22Add independent adversarial HTTP acceptance testsAzat Kabiden
  • 2026-09-23 14:22Make live recommendation explanations explicit and conciseAzat Kabiden
  • 2026-09-23 14:21Explain all AI factors and bound external searchAzat Kabiden
  • 2026-09-23 14:21Add independent adversarial HTTP audit testsAzat Kabiden
  • 2026-09-23 14:18Complete role workflows and actionable HR analyticsAzat Kabiden
  • 2026-09-23 14:17Refine employee route, analytics and external opportunitiesAzat Kabiden
  • 2026-09-23 14:17Add scoped judge gateway and reproducible verification guideAzat Kabiden
  • 2026-09-23 14:16Strengthen import chronology and duplicate completion validationAzat Kabiden
  • 2026-09-23 14:16Improve AI history evidence and low-latency model configurationAzat Kabiden
  • 2026-09-23 14:16Reject conflicting completion imports and invalid goalsAzat Kabiden
  • 2026-09-23 14:16Filter AI choices to useful goal activitiesAzat Kabiden
  • 2026-09-23 14:15Harden as-of calculations and recurring sessionsAzat Kabiden
  • 2026-09-23 14:15Implement isolated SQLite workflows with server authorization and atomic creditsAzat Kabiden
  • 2026-09-23 14:14Constrain AI model and include history preference factsAzat Kabiden
  • 2026-09-23 14:14Handle as-of completions and recurring sessionsAzat Kabiden
  • 2026-09-23 14:14Integrate five-role Career Quest interfaceAzat Kabiden
  • 2026-09-23 14:14Build Career Quest role workspace and core flowsAzat Kabiden
  • 2026-09-23 14:13Integrate tested source domain and import engineAzat Kabiden
  • 2026-09-23 14:13Integrate validated AI recommendationsAzat Kabiden
  • 2026-09-23 14:13Add reproducible locked install and isolated deployment configurationAzat Kabiden
  • 2026-09-23 14:13Implement Career Quest domain calculations and import validationAzat Kabiden
  • 2026-09-23 14:13Add validated AI recommendations and safe external searchAzat Kabiden
  • 2026-09-23 14:08Initialize Career Quest contracts and verified source datasetAzat Kabiden
  • 2026-09-23 13:44Add files via uploadAskhat Aubakirov
Структура репозитория (128 файлов)
.dockerignore
.env.example
.gitignore
.impeccable/design.json
AGENTS.md
DESIGN.md
Dockerfile
PRODUCT.md
PROJECT_STATE.md
README.md
compose.yml
data/demo/import-example.json
data/source-manifest.json
data/source/README.kz.md
data/source/README.md
data/source/README.ru.md
data/source/activity_history.csv
data/source/employees.json
data/source/events.json
data/source/skills.json
docs/00_NAVIGATION.md
docs/01_REQUIREMENTS.md
docs/02_ARCHITECTURE.md
docs/03_DATA_AND_IMPORT.md
docs/04_DOMAIN_CALCULATIONS.md
docs/05_RECOMMENDATIONS_AND_AI.md
docs/06_ROADMAP_AND_SIDE_QUESTS.md
docs/07_ROLES_AND_SECURITY.md
docs/08_API_AND_STORAGE.md
docs/09_INTERFACE.md
docs/10_HR_AND_REWARDS.md
docs/11_DEPLOYMENT.md
docs/12_TESTING.md
docs/13_REVIEWER_GUIDE.md
docs/14_JURY_FAQ.md
docs/15_RELEASE_AND_LIMITATIONS.md
docs/ACCEPTANCE.md
docs/AI.md
docs/AUDIT.md
docs/CONTRACT.md
docs/DATASET_INSPECTION.md
docs/DEMO_API.md
docs/DEPLOY.md
docs/DOCUMENTATION_CHECKS.md
docs/FORMULAS.md
docs/GLOSSARY.md
docs/REBRAND.md
docs/RELEASE_MANIFEST.json
docs/SOURCES.md
docs/TECHNICAL_DOCUMENTATION.md
docs/THIRD_PARTY.md
docs/UI_ATLAS.md
docs/contracts/recommendation.schema.json
docs/evidence/README.md
docs/evidence/TEST_RUN_TEMPLATE.md
docs/evidence/performance_template.csv
docs/examples/README.md
docs/examples/jury_employee.example.json
docs/examples/jury_history.example.csv
index.html
package-lock.json
package.json
public/brand/cq-mark-inverse.svg
public/brand/cq-mark-mono.svg
public/brand/cq-mark.svg
public/brand/cq-wordmark.svg
public/brand/favicon.svg
public/fonts/OFL.txt
public/fonts/noto-sans.woff2
scripts/acceptance-journey.ts
scripts/conflict-smoke.ts
scripts/external-smoke.ts
scripts/judge-smoke.ts
scripts/live-smoke.ts
scripts/rebrand-live-smoke.ts
scripts/verify-source.mjs
src/ai/external.ts
src/ai/index.ts
src/client/LanguagePicker.tsx
src/client/Select.tsx
src/client/api.ts
src/client/i18n.tsx
src/client/main.tsx
src/client/screens/AuditView.tsx
src/client/screens/CatalogView.tsx
src/client/screens/EmployeePath.tsx
src/client/screens/ExternalSearch.tsx
src/client/screens/Insights.tsx
src/client/screens/People.tsx
src/client/screens/Quests.tsx
src/client/screens/RewardsView.tsx
src/client/styles.css
src/client/ui.tsx
src/domain/analytics.ts
src/domain/calculation.ts
src/domain/import.ts
src/domain/index.ts
src/domain/roadmap.ts
src/domain/source.ts
src/server/access.ts
src/server/ai-budget.ts
src/server/app.ts
src/server/errors.ts
src/server/gateway.ts
src/server/index.ts
src/server/store.ts
src/server/workflows.ts
src/shared/catalog-i18n.ts
src/shared/catalog-translations/en.ts
src/shared/catalog-translations/kk.ts
src/shared/catalog-translations/labels.ts
src/shared/catalog-translations/ru.ts
src/shared/import-i18n.ts
src/shared/locale.ts
src/shared/server-i18n.ts
src/shared/types.ts
tests/ai.test.ts
tests/audit.integration.test.ts
tests/catalog-i18n.test.ts
tests/client-api-locale.test.ts
tests/domain.test.ts
tests/locale-import.test.ts
tests/locale-server.test.ts
tests/must-have.integration.test.ts
tests/server.test.ts
tests/ui-i18n.test.ts
tsconfig.json
vite.config.ts
Ветки (10)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.