@forwardimpact/map 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forwardimpact/map",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Public data model for career frameworks, consumed by AI agents and engineers",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -22,6 +22,10 @@
22
22
  "type": "boolean",
23
23
  "description": "If true, this is a management discipline (default false)"
24
24
  },
25
+ "hidden": {
26
+ "type": "boolean",
27
+ "description": "If true, this discipline is hidden from the web UI but remains available via the CLI"
28
+ },
25
29
  "validTracks": {
26
30
  "type": "array",
27
31
  "description": "REQUIRED. Explicit list of valid tracks. Use null to allow trackless (generalist). Empty array = no valid combinations.",
@@ -60,6 +60,13 @@
60
60
  "items": {
61
61
  "type": "string"
62
62
  }
63
+ },
64
+ "returnFormat": {
65
+ "type": "array",
66
+ "description": "Expected outputs when completing this stage",
67
+ "items": {
68
+ "type": "string"
69
+ }
63
70
  }
64
71
  },
65
72
  "additionalProperties": false
@@ -58,6 +58,12 @@ fit:isManagement a rdf:Property ;
58
58
  rdfs:domain fit:Discipline ;
59
59
  rdfs:range xsd:boolean .
60
60
 
61
+ fit:hidden a rdf:Property ;
62
+ rdfs:label "hidden"@en ;
63
+ rdfs:comment "If true, this discipline is hidden from the web UI but remains available via the CLI"@en ;
64
+ rdfs:domain fit:Discipline ;
65
+ rdfs:range xsd:boolean .
66
+
61
67
  fit:validTracks a rdf:Property ;
62
68
  rdfs:label "validTracks"@en ;
63
69
  rdfs:comment "REQUIRED. Explicit list of valid tracks. Empty array = trackless only."@en ;
@@ -163,6 +169,13 @@ fit:DisciplineShape a sh:NodeShape ;
163
169
  sh:name "isManagement" ;
164
170
  sh:description "If true, this is a management discipline (default false)" ;
165
171
  ] ;
172
+ sh:property [
173
+ sh:path fit:hidden ;
174
+ sh:datatype xsd:boolean ;
175
+ sh:maxCount 1 ;
176
+ sh:name "hidden" ;
177
+ sh:description "If true, this discipline is hidden from the web UI but remains available via the CLI" ;
178
+ ] ;
166
179
  sh:property [
167
180
  sh:path fit:validTracks ;
168
181
  sh:minCount 1 ;
package/src/loader.js CHANGED
@@ -284,8 +284,12 @@ export class DataLoader {
284
284
  async loadQuestionFolder(questionsDir) {
285
285
  const [skillProficiencies, behaviourMaturities, capabilityLevels] =
286
286
  await Promise.all([
287
- this.#loadQuestionsFromDir(join(questionsDir, "skills")),
288
- this.#loadQuestionsFromDir(join(questionsDir, "behaviours")),
287
+ this.#loadQuestionsFromDir(join(questionsDir, "skills")).catch(
288
+ () => ({}),
289
+ ),
290
+ this.#loadQuestionsFromDir(join(questionsDir, "behaviours")).catch(
291
+ () => ({}),
292
+ ),
289
293
  this.#loadQuestionsFromDir(join(questionsDir, "capabilities")).catch(
290
294
  () => ({}),
291
295
  ),
@@ -367,21 +371,13 @@ export class DataLoader {
367
371
  const tracksDir = join(dataDir, "tracks");
368
372
  const behavioursDir = join(dataDir, "behaviours");
369
373
 
370
- const [
371
- disciplineFiles,
372
- trackFiles,
373
- behaviourFiles,
374
- vscodeSettings,
375
- devcontainer,
376
- copilotSetupSteps,
377
- ] = await Promise.all([
378
- this.#loadDisciplinesFromDir(disciplinesDir),
379
- this.#loadTracksFromDir(tracksDir),
380
- this.#loadBehavioursFromDir(behavioursDir),
381
- this.#loadRepoFile(dataDir, "vscode-settings.yaml", {}),
382
- this.#loadRepoFile(dataDir, "devcontainer.yaml", {}),
383
- this.#loadRepoFile(dataDir, "copilot-setup-steps.yaml", null),
384
- ]);
374
+ const [disciplineFiles, trackFiles, behaviourFiles, claudeCodeSettings] =
375
+ await Promise.all([
376
+ this.#loadDisciplinesFromDir(disciplinesDir),
377
+ this.#loadTracksFromDir(tracksDir),
378
+ this.#loadBehavioursFromDir(behavioursDir),
379
+ this.#loadRepoFile(dataDir, "claude-code-settings.yaml", {}),
380
+ ]);
385
381
 
386
382
  const disciplines = disciplineFiles
387
383
  .filter((d) => d.agent)
@@ -408,9 +404,7 @@ export class DataLoader {
408
404
  disciplines,
409
405
  tracks,
410
406
  behaviours,
411
- vscodeSettings,
412
- devcontainer,
413
- copilotSetupSteps,
407
+ claudeCodeSettings,
414
408
  };
415
409
  }
416
410