Skills Mapping — configuration guide
This guide helps customer administrators prepare the skills data and access policy, and identifies the platform settings that control employee and manager mapping. Daily use is in the functional guide; source contracts are in the technical guide.
Prerequisites and ownership
| Owner | Responsibilities |
|---|---|
| Customer administrator / HR framework owner | Maintain repositories, skill groups, translations, job skills, required levels, employee job assignments and authorized manager populations. |
| Platform team | Confirm tenant feature switches, rating scales, library search configuration and runtime dependencies. |
| Employee / authorized manager | Maintain permitted profile ratings and skill selections after configuration has been validated. |
Observed in application, 23 October 2026: the manager workspace provided framework and role/visibility navigation, employee profile skills, and a working employee library search. A dedicated Skills Mapping configuration form was not exposed in the inspected Settings menu. The procedures below therefore separate preparation through established administration screens from implementation settings verified only in code. No settings were saved.
Prepare the company data and permissions
- In the manager workspace, review Emplois et compétences and the company's skills framework. Ensure the intended skills have the correct group, translations and repository membership. Follow framework configuration for catalogue maintenance.
- Confirm which company repositories should be public to the library. Public library visibility is different from making employee assessments visible to managers.
- Confirm job descriptions contain the expected skills and required levels. Review employee primary-job assignments, and alternative jobs if enabled. These relationships affect comparisons and skill-removal protection.
- Define who may read, add, rate and remove employee skills. Review the roles and permissions guide; employee population visibility is a separate prerequisite from skill action permissions.
- Ask the platform team to confirm the company mastery scale, library mode, observatories, rating policy and any outside-job skill quota. Record existing values before changing them.
- Validate the employee and manager journeys using representative authorized accounts. Check an unrated skill, a rated individually added skill and a locked job skill. The inspected tenant uses four mastery levels and four motivation levels.

The outlined Skills tab and rating columns locate an employee’s portfolio in manager space. Read mastery and motivation separately and respect the available edit permissions; visible controls do not demonstrate a successful rating change. This is the resulting manager profile, not a configuration form. Relevant rating columns and the Skills tab are outlined; personal details are redacted.
Scope, defaults and precedence
Verified in code: the legacy Setting entity initializes skill_level to 4. The SchoolsettingType form renders this as a required integer with browser minimum 4 and maximum 5. These form attributes alone do not establish complete server-side validation or a live change procedure. Changing scale interpretation for existing assessments requires review; no automatic rescaling was established.
The searcher takes company configuration from the target employee's setting and language from the employee's locale. Library repositories are selected as follows:
- An explicit repository list, when supplied by the calling search surface, replaces the ordinary public-company-repository selection.
- Configured observatory repositories are included alongside that selection.
- In the AI library mode, public customer repositories can additionally be prioritized, with the main repository sorted first and semantic deduplication requested.
An empty observatory setting returns an empty list in Setting::getSkillLibraryObservatories(); it does not mean all observatories are enabled. Feature-switch defaults, administrative inheritance and effective deployed values were not established. Do not assume a new tenant has the same controls as the inspected tenant, or that nextgen settings override legacy switches.
Platform activation and display rules
The following are Verified in code, primarily in the legacy profile and library templates. They are internal implementation references for the platform team, not instructions to edit production configuration directly.
| Setting / switch | Scope and effect | Default / limits established |
|---|---|---|
module_skill_fo | Displays employee skill-addition controls. | Effective default not verified. |
profil_skill_searchapi_smart | Chooses the full Skills Library link; other branches use an add-skill popup/modal. | Effective default not verified. |
skill_library_api_url_skills_qdrant_single | Selects the alternate AI library service URL through SkillLibraryUrlManager. | Boolean decision; live value not read. The identifier does not prove the current upstream database technology. |
skillLibraryObservatories | Company setting listing observatory slugs resolved into repository IDs. | Empty/unset reads as an empty list. Allowed deployment-specific slugs not enumerated. |
skill_level | Company mastery scale, used to generate rating controls. | Entity initial value 4; legacy form advertises 4–5. |
module_profile_block_assess_skills_mastery | Suppresses employee mastery controls in the inspected profile table. | Does not establish a blanket server-side write restriction on every route. |
prevent_employee_edit_jobskill_ratings | Suppresses employee mastery controls for job-linked skills in that table. | Independent of deletion locking. |
fo_no_display_motivation_add_skill | Hides motivation during library addition and skips that client-side submission check. | No missing-motivation backfill was established; affected skills may be absent from the motivation map. |
fo_block_skills | Participates in job-skill removal locks in profile templates. | Backend deletion protection must also be checked; UI visibility is not the full policy. |
enable_alternative_jobs | Includes alternative-job skill sources in employee locking. | Manager deletion-source lookup explicitly considers alternative jobs even when this switch is off. |
max_skill_outside_job | Limits skills outside the current primary job during the inspected library save. | Quota enforced only when the value is at least 1 and the employee has a job. No universal quota value verified. |
module_skillmultiple, module_skilldelete, module_skillmodifdelete | Control bulk-selection and removal/edit presentation branches. | Availability varies by branch. |
module_skillrecommandation | Enables endorsement presentation/actions and affects some lock-display conditions. | Sending a request was not tested. |
module_analysespider | Enables the job-comparison area of the Analysis tab. | Effective default not verified. |
module_hide_fo_jobskill_comparator | Hides the job-selection dropdown within that area. | Hiding the selector is distinct from disabling all analysis. |
enable_skill_spotlight_module | Displays job-related skill spotlight when the employee has an assigned job. | Ranking criteria were not independently validated. |
display_skill_domain | Selects an alternate domain-based skills display. | That branch was not inspected live. |
The quota implementation compares the existing count outside the primary job with the submitted selection count before its duplicate-skipping loop. Do not promise that a repeated or already-owned selection can never cause a quota error. The quota is an addition guard in this path, not proof that existing excess skills will be deleted.
Access policy
Verified in code:
- Personal profile routes declare
profile_access. - The manager profile's skill-section visibility excludes roles containing
bo_prevent_see_user_skill. - Library page access for another employee can check
add_skills_collab; manager-rating modification has a separateallow_modifying_manager_skill_ratingcheck and a direct-manager condition. - The inspected multi-add action separately requires a matching company and permits self, direct manager or the implementation's master-school category. Opening the page and submitting are different authorization paths; a button alone does not guarantee save access.
- Nextgen user-skill APIs use separate
read-user-skill,create-user-skill,update-user-skillanddelete-user-skillpermissions, plus company/population filtering. The API list defaults to approved sources. These are not interchangeable with legacy role names.
Use representative accounts to validate the intended access rather than expanding visibility to solve an empty page. No permission changes or unauthorized-access probes were performed.
Search dependency and resulting user experience
Verified in code: SkillLibraryUrlManager requires both configured search-service URL values, even though the switch selects only one at runtime. The collection name is injected into SkillSearcher. Keep actual service addresses and configuration values in the platform's restricted operational documentation.
The legacy search request asks for up to 40 ranked results and supplies repository IDs and language. AI mode adds repository priority and a deduplication threshold of 0.95 when public customer repositories are available. These are implementation parameters, not a user-entered relevance filter or a guarantee of 40 visible results.

The outlined search returns observatory suggestions while the selected-skills panel is empty. Choose a relevant candidate before rating it; neither the result list nor its count shows a saved portfolio addition. Observed result of a search for “communication”. Other-observatory results confirm that source was available to this search; they do not establish every enabled repository or the active service URL.
Activation, validation and safe changes
Recommended procedure — inferred from the verified dependencies:
- Record the current policy, scale, repository visibility, observatory selection and enabled controls through the authorized administrative process.
- Validate proposed changes in a test tenant with representative data. Check search results in each supported language and distinguish employee self-ratings from manager ratings and job expectations.
- For rating restrictions, check both the visible controls and the authorized save contract. For quota changes, test users with and without jobs, and a selection at the limit.
- For repository or job changes, verify comparisons and protected skills after reopening the profile. Do not use a configuration rollback as a way to undo employee data edits.
- Roll out through the platform team's normal process and recheck both workspaces. No propagation-time or cache-invalidation guarantee was verified.
- If the configuration causes a regression, restore the recorded configuration through that process and verify again. Search may copy observatory skill records locally; reverting visibility or a flag does not establish that those records or added user skills are removed.
Do not change the mastery scale merely to repair a chart. Legacy bubble logic includes a hard-coded 2.5 split in inspected handlers; five-level behavior needs separate validation.
Troubleshooting
| Symptom | Likely checks grounded in code |
|---|---|
| Add button absent | Employee workspace, profile_access, module_skill_fo, and which add-skill branch is selected. |
| Search empty or fails | Search-service configuration, repository visibility, observatory selection, locale, collection availability and platform error logs. |
| Save rejected | Required ratings, company/manager authorization, outside-job quota and actual server response. |
| Motivation map empty | Both ratings must be positive; hiding motivation on addition can leave skills without a motivation value. |
| Job skill cannot be removed | Primary/alternative job sources and explicit lock marker; backend protections can remain even when a control is displayed. |
| Manager skill tab missing | Employee visibility and bo_prevent_see_user_skill; add/rate permissions do not replace read visibility. |
| API and legacy list differ | Nextgen approval default, company/population scope, translation and source filters; confirm the route being used. |
Legacy / redesigned coexistence and evidence
- Observed in application: 23 October 2026, legacy employee profile/library and manager employee detail; no dedicated mapping settings save form inspected. Personal details in full-window screenshots are redacted.
- Verified in code: legacy
src/Main/ConfigBundle/Entity/Setting.php,Form/Type/SchoolsettingType.php,Controller/SkillLibraryController.php;src/Service/SkillLibraryUrlManager.php;src/Customer/ProfileBundle/Services/SkillSearcher.php; profile/library templates;src/Service/Skills/{SkillQuotaService,SkillDeletionService,LockedSkillSourceService}.php; managerSkillSection.php. Exact repository prefixes and snapshot revisions are in the technical evidence index. - Verified in code: nextgen user-skill routes and DTO validation exist. The front-end Performance evaluation configuration component concerns review configuration; it is not evidence of a replacement employee mapping settings page or precedence over legacy values.
- Not verified: switch registration defaults, all tenant overrides/inheritance, production settings, rollback execution, five-level chart behavior, saved configuration and runtime compatibility between deployed services. No automatic migration of the Skills Mapping UI was established.
The functional guide now includes the saved library addition and reopened profile result observed on 26 October 2026. These employee operations do not establish effective tenant-switch values or an administrator configuration save.
Last updated on 3 November 2026