sinapse-ai 1.11.3 → 1.12.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.
Files changed (77) hide show
  1. package/.claude/hooks/enforce-architecture-first.cjs +2 -2
  2. package/.claude/hooks/enforce-delegation.cjs +2 -2
  3. package/.claude/hooks/enforce-permission-mode.cjs +12 -12
  4. package/.claude/hooks/enforce-story-gate.cjs +5 -5
  5. package/.claude/hooks/precompact-session-digest.cjs +2 -2
  6. package/.claude/hooks/secret-scanning.cjs +6 -6
  7. package/.claude/hooks/telemetry-post-tool.cjs +0 -1
  8. package/.claude/hooks/write-path-validation.cjs +2 -2
  9. package/.sinapse-ai/core/code-intel/helpers/dev-helper.js +1 -1
  10. package/.sinapse-ai/core/code-intel/helpers/devops-helper.js +0 -1
  11. package/.sinapse-ai/core/code-intel/helpers/planning-helper.js +1 -1
  12. package/.sinapse-ai/core/code-intel/helpers/qa-helper.js +2 -2
  13. package/.sinapse-ai/core/config/template-overrides.js +1 -1
  14. package/.sinapse-ai/core/doctor/checks/git-hooks.js +6 -3
  15. package/.sinapse-ai/core/doctor/checks/npm-packages.js +1 -1
  16. package/.sinapse-ai/core/doctor/checks/rules-files.js +0 -1
  17. package/.sinapse-ai/core/doctor/index.js +0 -1
  18. package/.sinapse-ai/core/graph-dashboard/cli.js +1 -1
  19. package/.sinapse-ai/core/graph-dashboard/data-sources/code-intel-source.js +1 -1
  20. package/.sinapse-ai/core/health-check/checks/project/constitution-consistency.js +0 -1
  21. package/.sinapse-ai/core/ideation/ideation-engine.js +0 -2
  22. package/.sinapse-ai/core/ids/layer-classifier.js +1 -1
  23. package/.sinapse-ai/core/registry/build-registry.js +12 -2
  24. package/.sinapse-ai/core/registry/service-registry.json +178 -55
  25. package/.sinapse-ai/core/registry/squad-agent-resolver.js +6 -0
  26. package/.sinapse-ai/core/synapse/layers/layer-processor.js +1 -1
  27. package/.sinapse-ai/data/capability-detection.js +15 -15
  28. package/.sinapse-ai/data/tok3-token-comparison.js +0 -3
  29. package/.sinapse-ai/data/tool-search-validation.js +1 -1
  30. package/.sinapse-ai/development/agents/snps-orqx.md +109 -0
  31. package/.sinapse-ai/development/scripts/agent-config-loader.js +8 -2
  32. package/.sinapse-ai/development/templates/sinapse-doc-template.md +6 -6
  33. package/.sinapse-ai/git-hooks/lib/framework-guard.js +1 -0
  34. package/.sinapse-ai/git-hooks/lib/staged-protected-files-guard.js +63 -0
  35. package/.sinapse-ai/git-hooks/pre-commit +3 -1
  36. package/.sinapse-ai/index.d.ts +19 -0
  37. package/.sinapse-ai/install-manifest.yaml +59 -55
  38. package/.sinapse-ai/package.json +0 -1
  39. package/.sinapse-ai/utils/filters/index.js +2 -1
  40. package/CHANGELOG.md +31 -2
  41. package/bin/commands/doctor.js +1 -1
  42. package/bin/commands/help.js +3 -4
  43. package/bin/commands/install.js +7 -7
  44. package/bin/commands/status.js +3 -3
  45. package/bin/modules/chrome-brain-installer.js +3 -3
  46. package/bin/postinstall.js +1 -1
  47. package/bin/sinapse-init.js +11 -9
  48. package/bin/sinapse.js +1 -1
  49. package/bin/utils/framework-guard.js +1 -0
  50. package/bin/utils/staged-protected-files-guard.js +63 -0
  51. package/package.json +19 -2
  52. package/packages/installer/src/index.js +1 -1
  53. package/packages/installer/src/installer/brownfield-upgrader.js +1 -1
  54. package/packages/installer/src/installer/git-hooks-installer.js +10 -3
  55. package/packages/installer/src/pro/pro-scaffolder.js +3 -3
  56. package/packages/installer/src/wizard/ide-config-generator.js +1 -1
  57. package/packages/installer/src/wizard/index.js +4 -41
  58. package/scripts/audit-tasks.cjs +1 -1
  59. package/scripts/package-synapse.js +1 -1
  60. package/scripts/sinapse-patch.js +31 -31
  61. package/scripts/sync-squad-yaml-components.js +3 -3
  62. package/scripts/validate-agents-md.js +1 -1
  63. package/scripts/validate-no-personal-leaks.js +1 -1
  64. package/scripts/validate-orqx-discipline.js +0 -2
  65. package/scripts/validate-package-completeness.js +7 -7
  66. package/scripts/validate-squad-yaml.js +6 -6
  67. package/sinapse/agents/sinapse-orqx.md +1 -1
  68. package/sinapse/agents/snps-orqx.md +110 -1
  69. package/squads/claude-code-mastery/agents/swarm-orqx.md +12 -11
  70. package/squads/claude-code-mastery/scripts/validate-setup.js +2 -2
  71. package/squads/squad-brand/agents/brand-orqx.md +16 -1
  72. package/squads/squad-cloning/agents/cloning-orqx.md +2 -0
  73. package/squads/squad-commercial/agents/commercial-orqx.md +7 -4
  74. package/squads/squad-council/squad.yaml +67 -11
  75. package/squads/squad-design/agents/design-orqx.md +20 -0
  76. package/squads/squad-finance/agents/finance-orqx.md +6 -0
  77. package/squads/squad-paidmedia/agents/paidmedia-orqx.md +3 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "generated": "2026-05-02T06:37:37.036Z",
4
- "totalWorkers": 369,
3
+ "generated": "2026-06-19T20:32:21.238Z",
4
+ "totalWorkers": 373,
5
5
  "categories": {
6
6
  "checklist": {
7
7
  "count": 16,
@@ -11,7 +11,7 @@
11
11
  "description": "Quality validation checklists"
12
12
  },
13
13
  "script": {
14
- "count": 108,
14
+ "count": 110,
15
15
  "subcategories": [
16
16
  "analysis",
17
17
  "configuration",
@@ -24,7 +24,7 @@
24
24
  "description": "JavaScript utility scripts"
25
25
  },
26
26
  "task": {
27
- "count": 213,
27
+ "count": 215,
28
28
  "subcategories": [
29
29
  "analysis",
30
30
  "creation",
@@ -1966,7 +1966,7 @@
1966
1966
  }
1967
1967
  },
1968
1968
  {
1969
- "id": "index-script",
1969
+ "id": "index-script-2",
1970
1970
  "name": "Index",
1971
1971
  "description": "Documentation Integrity System",
1972
1972
  "category": "script",
@@ -1996,7 +1996,7 @@
1996
1996
  }
1997
1997
  },
1998
1998
  {
1999
- "id": "index-script",
1999
+ "id": "index-script-3",
2000
2000
  "name": "Index",
2001
2001
  "description": "DeepSeek Usage Tracker Proxy",
2002
2002
  "category": "script",
@@ -2401,6 +2401,37 @@
2401
2401
  "addedVersion": "1.0.0"
2402
2402
  }
2403
2403
  },
2404
+ {
2405
+ "id": "persona-renderer",
2406
+ "name": "Persona Renderer",
2407
+ "description": "Persona Renderer — shared across IDE transformers (cursor, antigravity, github-copilot).",
2408
+ "category": "script",
2409
+ "subcategory": "utility",
2410
+ "inputs": [],
2411
+ "outputs": [],
2412
+ "tags": [
2413
+ "script",
2414
+ "utility",
2415
+ "persona",
2416
+ "renderer"
2417
+ ],
2418
+ "path": ".sinapse-ai/infrastructure/scripts/ide-sync/persona-renderer.js",
2419
+ "taskFormat": "SCRIPT",
2420
+ "executorTypes": [
2421
+ "CLI",
2422
+ "Script"
2423
+ ],
2424
+ "performance": {
2425
+ "avgDuration": "500ms",
2426
+ "cacheable": true,
2427
+ "parallelizable": true
2428
+ },
2429
+ "agents": [],
2430
+ "metadata": {
2431
+ "source": "infrastructure",
2432
+ "addedVersion": "1.0.0"
2433
+ }
2434
+ },
2404
2435
  {
2405
2436
  "id": "plan-tracker",
2406
2437
  "name": "Plan Tracker",
@@ -2785,6 +2816,36 @@
2785
2816
  "addedVersion": "1.0.0"
2786
2817
  }
2787
2818
  },
2819
+ {
2820
+ "id": "resolve",
2821
+ "name": "Resolve",
2822
+ "description": "Behavioral pointer/orphan resolver for the Codex catalog (anti-fachada).",
2823
+ "category": "script",
2824
+ "subcategory": "utility",
2825
+ "inputs": [],
2826
+ "outputs": [],
2827
+ "tags": [
2828
+ "script",
2829
+ "utility",
2830
+ "resolve"
2831
+ ],
2832
+ "path": ".sinapse-ai/infrastructure/scripts/codex-parity/resolve.js",
2833
+ "taskFormat": "SCRIPT",
2834
+ "executorTypes": [
2835
+ "CLI",
2836
+ "Script"
2837
+ ],
2838
+ "performance": {
2839
+ "avgDuration": "500ms",
2840
+ "cacheable": true,
2841
+ "parallelizable": true
2842
+ },
2843
+ "agents": [],
2844
+ "metadata": {
2845
+ "source": "infrastructure",
2846
+ "addedVersion": "1.0.0"
2847
+ }
2848
+ },
2788
2849
  {
2789
2850
  "id": "rollback-manager",
2790
2851
  "name": "Rollback Manager",
@@ -3104,7 +3165,7 @@
3104
3165
  {
3105
3166
  "id": "sync-codex-local-first",
3106
3167
  "name": "Sync Codex Local First",
3107
- "description": "JavaScript utility script",
3168
+ "description": "Build the canonical agent source map. Source of truth = framework core agents (canonicalAgentsDir, flat *.md) + every squad specialist/orchestrator under squads/<squad>/agents/*.md.",
3108
3169
  "category": "script",
3109
3170
  "subcategory": "utility",
3110
3171
  "inputs": [],
@@ -4478,7 +4539,7 @@
4478
4539
  {
4479
4540
  "id": "brownfield-create-story",
4480
4541
  "name": "Brownfield Create Story",
4481
- "description": "Choose your execution mode:",
4542
+ "description": "> WHEN TO USE THIS TASK (vs create-brownfield-story.md):",
4482
4543
  "category": "task",
4483
4544
  "subcategory": "creation",
4484
4545
  "inputs": [],
@@ -4511,7 +4572,7 @@
4511
4572
  {
4512
4573
  "id": "build",
4513
4574
  "name": "Build",
4514
- "description": "> Command: build {story-id}",
4575
+ "description": "task: build",
4515
4576
  "category": "task",
4516
4577
  "subcategory": "general",
4517
4578
  "inputs": [],
@@ -4541,7 +4602,7 @@
4541
4602
  {
4542
4603
  "id": "build-autonomous",
4543
4604
  "name": "Build Autonomous",
4544
- "description": "> Command: build-autonomous {story-id}",
4605
+ "description": "task: build-autonomous",
4545
4606
  "category": "task",
4546
4607
  "subcategory": "general",
4547
4608
  "inputs": [],
@@ -4604,7 +4665,7 @@
4604
4665
  {
4605
4666
  "id": "build-resume",
4606
4667
  "name": "Build Resume",
4607
- "description": "> Command: build-resume {story-id}",
4668
+ "description": "task: build-resume",
4608
4669
  "category": "task",
4609
4670
  "subcategory": "general",
4610
4671
  "inputs": [],
@@ -4635,7 +4696,7 @@
4635
4696
  {
4636
4697
  "id": "build-status",
4637
4698
  "name": "Build Status",
4638
- "description": "> Command: build-status {story-id} or build-status --all",
4699
+ "description": "task: build-status",
4639
4700
  "category": "task",
4640
4701
  "subcategory": "general",
4641
4702
  "inputs": [],
@@ -4791,7 +4852,7 @@
4791
4852
  {
4792
4853
  "id": "cleanup-worktrees",
4793
4854
  "name": "Cleanup Worktrees",
4794
- "description": "Remove all stale git worktrees older than specified threshold.",
4855
+ "description": "task: cleanup-worktrees",
4795
4856
  "category": "task",
4796
4857
  "subcategory": "general",
4797
4858
  "inputs": [],
@@ -5009,7 +5070,7 @@
5009
5070
  {
5010
5071
  "id": "create-brownfield-story",
5011
5072
  "name": "Create Brownfield Story",
5012
- "description": "Choose your execution mode:",
5073
+ "description": "> WHEN TO USE THIS TASK (vs brownfield-create-story.md):",
5013
5074
  "category": "task",
5014
5075
  "subcategory": "creation",
5015
5076
  "inputs": [],
@@ -5969,6 +6030,38 @@
5969
6030
  "addedVersion": "1.0.0"
5970
6031
  }
5971
6032
  },
6033
+ {
6034
+ "id": "delegate-to-external-executor",
6035
+ "name": "Delegate To External Executor",
6036
+ "description": "Task: Delegate Implementation to External Executor",
6037
+ "category": "task",
6038
+ "subcategory": "general",
6039
+ "inputs": [],
6040
+ "outputs": [],
6041
+ "tags": [
6042
+ "task",
6043
+ "general",
6044
+ "delegate",
6045
+ "external",
6046
+ "executor"
6047
+ ],
6048
+ "path": ".sinapse-ai/development/tasks/delegate-to-external-executor.md",
6049
+ "taskFormat": "TASK-FORMAT-V1",
6050
+ "executorTypes": [
6051
+ "Agent",
6052
+ "Worker"
6053
+ ],
6054
+ "performance": {
6055
+ "avgDuration": "1m",
6056
+ "cacheable": false,
6057
+ "parallelizable": false
6058
+ },
6059
+ "agents": [],
6060
+ "metadata": {
6061
+ "source": "development",
6062
+ "addedVersion": "1.0.0"
6063
+ }
6064
+ },
5972
6065
  {
5973
6066
  "id": "deprecate-component",
5974
6067
  "name": "Deprecate Component",
@@ -7011,7 +7104,7 @@
7011
7104
  {
7012
7105
  "id": "gotcha",
7013
7106
  "name": "Gotcha",
7014
- "description": "> Command: gotcha {title} - {description}",
7107
+ "description": "task: gotcha",
7015
7108
  "category": "task",
7016
7109
  "subcategory": "general",
7017
7110
  "inputs": [],
@@ -7041,7 +7134,7 @@
7041
7134
  {
7042
7135
  "id": "gotchas",
7043
7136
  "name": "Gotchas",
7044
- "description": "> Command: gotchas [options]",
7137
+ "description": "task: gotchas",
7045
7138
  "category": "task",
7046
7139
  "subcategory": "general",
7047
7140
  "inputs": [],
@@ -7102,7 +7195,7 @@
7102
7195
  {
7103
7196
  "id": "ids-health",
7104
7197
  "name": "Ids Health",
7105
- "description": "Run a self-healing health check on the IDS entity registry to detect and auto-fix data integrity issues.",
7198
+ "description": "task: ids-health",
7106
7199
  "category": "task",
7107
7200
  "subcategory": "general",
7108
7201
  "inputs": [],
@@ -7382,7 +7475,7 @@
7382
7475
  {
7383
7476
  "id": "list-mcps",
7384
7477
  "name": "List Mcps",
7385
- "description": "List currently enabled MCP servers and their available tools.",
7478
+ "description": "task: list-mcps",
7386
7479
  "category": "task",
7387
7480
  "subcategory": "general",
7388
7481
  "inputs": [],
@@ -7507,7 +7600,7 @@
7507
7600
  {
7508
7601
  "id": "merge-worktree",
7509
7602
  "name": "Merge Worktree",
7510
- "description": "Merge a worktree branch back to its base branch.",
7603
+ "description": "task: merge-worktree",
7511
7604
  "category": "task",
7512
7605
  "subcategory": "general",
7513
7606
  "inputs": [],
@@ -8337,6 +8430,37 @@
8337
8430
  "addedVersion": "1.0.0"
8338
8431
  }
8339
8432
  },
8433
+ {
8434
+ "id": "push-and-pr",
8435
+ "name": "Push And Pr",
8436
+ "description": "task_id: push-and-pr",
8437
+ "category": "task",
8438
+ "subcategory": "general",
8439
+ "inputs": [],
8440
+ "outputs": [],
8441
+ "tags": [
8442
+ "task",
8443
+ "general",
8444
+ "push",
8445
+ "and"
8446
+ ],
8447
+ "path": ".sinapse-ai/development/tasks/push-and-pr.md",
8448
+ "taskFormat": "TASK-FORMAT-V1",
8449
+ "executorTypes": [
8450
+ "Agent",
8451
+ "Worker"
8452
+ ],
8453
+ "performance": {
8454
+ "avgDuration": "1m",
8455
+ "cacheable": false,
8456
+ "parallelizable": false
8457
+ },
8458
+ "agents": [],
8459
+ "metadata": {
8460
+ "source": "development",
8461
+ "addedVersion": "1.0.0"
8462
+ }
8463
+ },
8340
8464
  {
8341
8465
  "id": "qa-after-creation",
8342
8466
  "name": "Qa After Creation",
@@ -8754,7 +8878,7 @@
8754
8878
  {
8755
8879
  "id": "qa-review-build",
8756
8880
  "name": "Qa Review Build",
8757
- "description": "> Phase: QA Review",
8881
+ "description": "task: qa-review-build",
8758
8882
  "category": "task",
8759
8883
  "subcategory": "general",
8760
8884
  "inputs": [],
@@ -9090,7 +9214,7 @@
9090
9214
  {
9091
9215
  "id": "remove-mcp",
9092
9216
  "name": "Remove Mcp",
9093
- "description": "Remove an MCP server from Docker MCP Toolkit.",
9217
+ "description": "task: remove-mcp",
9094
9218
  "category": "task",
9095
9219
  "subcategory": "general",
9096
9220
  "inputs": [],
@@ -9403,6 +9527,37 @@
9403
9527
  "addedVersion": "1.0.0"
9404
9528
  }
9405
9529
  },
9530
+ {
9531
+ "id": "self-heal",
9532
+ "name": "Self Heal",
9533
+ "description": "task_id: self-heal",
9534
+ "category": "task",
9535
+ "subcategory": "general",
9536
+ "inputs": [],
9537
+ "outputs": [],
9538
+ "tags": [
9539
+ "task",
9540
+ "general",
9541
+ "self",
9542
+ "heal"
9543
+ ],
9544
+ "path": ".sinapse-ai/development/tasks/self-heal.md",
9545
+ "taskFormat": "TASK-FORMAT-V1",
9546
+ "executorTypes": [
9547
+ "Agent",
9548
+ "Worker"
9549
+ ],
9550
+ "performance": {
9551
+ "avgDuration": "1m",
9552
+ "cacheable": false,
9553
+ "parallelizable": false
9554
+ },
9555
+ "agents": [],
9556
+ "metadata": {
9557
+ "source": "development",
9558
+ "addedVersion": "1.0.0"
9559
+ }
9560
+ },
9406
9561
  {
9407
9562
  "id": "session-resume",
9408
9563
  "name": "Session Resume",
@@ -10363,38 +10518,6 @@
10363
10518
  "addedVersion": "1.0.0"
10364
10519
  }
10365
10520
  },
10366
- {
10367
- "id": "test-validation-task",
10368
- "name": "Test Validation Task",
10369
- "description": "Choose your execution mode:",
10370
- "category": "task",
10371
- "subcategory": "general",
10372
- "inputs": [],
10373
- "outputs": [],
10374
- "tags": [
10375
- "task",
10376
- "general",
10377
- "test",
10378
- "validation",
10379
- "testing"
10380
- ],
10381
- "path": ".sinapse-ai/development/tasks/test-validation-task.md",
10382
- "taskFormat": "TASK-FORMAT-V1",
10383
- "executorTypes": [
10384
- "Agent",
10385
- "Worker"
10386
- ],
10387
- "performance": {
10388
- "avgDuration": "1m",
10389
- "cacheable": false,
10390
- "parallelizable": false
10391
- },
10392
- "agents": [],
10393
- "metadata": {
10394
- "source": "development",
10395
- "addedVersion": "1.0.0"
10396
- }
10397
- },
10398
10521
  {
10399
10522
  "id": "triage-github-issues",
10400
10523
  "name": "Triage Github Issues",
@@ -10493,7 +10616,7 @@
10493
10616
  {
10494
10617
  "id": "update-sinapse",
10495
10618
  "name": "Update Sinapse",
10496
- "description": "> Version: 4.0.0",
10619
+ "description": "> Version: 5.2.0",
10497
10620
  "category": "task",
10498
10621
  "subcategory": "general",
10499
10622
  "inputs": [],
@@ -10655,7 +10778,7 @@
10655
10778
  {
10656
10779
  "id": "validate-agents",
10657
10780
  "name": "Validate Agents",
10658
- "description": "execution_mode: programmatic # TOK-3: PTC-eligible — batch-scan all agent files in single Bash block",
10781
+ "description": "task: validate-agents",
10659
10782
  "category": "task",
10660
10783
  "subcategory": "validation",
10661
10784
  "inputs": [],
@@ -39,6 +39,9 @@ const ALIASES = {
39
39
  sm: 'sprint-lead',
40
40
  ux: 'ux-design-expert',
41
41
  'ux-expert': 'ux-design-expert',
42
+ // Imperator orchestrator ships as snps-orqx.md (SINAPSE canonical, @snps alias);
43
+ // 'sinapse-orqx' is the verbal/canonical reference that must resolve to that file.
44
+ 'sinapse-orqx': 'snps-orqx',
42
45
  };
43
46
 
44
47
  class SquadAgentResolver {
@@ -251,3 +254,6 @@ class SquadAgentResolver {
251
254
 
252
255
  module.exports = SquadAgentResolver;
253
256
  module.exports.SquadAgentResolver = SquadAgentResolver;
257
+ // Canonical short-form → file-id alias map. Single source of truth, consumed by the
258
+ // activation pipeline (agent-config-loader) so '@dev' etc. load the real persona file.
259
+ module.exports.ALIASES = ALIASES;
@@ -50,7 +50,7 @@ class LayerProcessor {
50
50
  * @param {object[]} context.previousLayers - Results from previous layers
51
51
  * @returns {{ rules: string[], metadata: object } | null} Rules and metadata, or null to skip
52
52
  */
53
- process(context) {
53
+ process(_context) {
54
54
  throw new Error(`${this.name}: process() must be implemented by subclass`);
55
55
  }
56
56
 
@@ -31,13 +31,13 @@ function detectToolSearch() {
31
31
  return {
32
32
  available: features.tengu_mcp_tool_search === true,
33
33
  source: 'cachedGrowthBookFeatures.tengu_mcp_tool_search',
34
- detectionMethod: 'claude-json-feature-flag'
34
+ detectionMethod: 'claude-json-feature-flag',
35
35
  };
36
36
  } catch {
37
37
  return {
38
38
  available: false,
39
39
  source: 'detection-failed',
40
- detectionMethod: 'claude-json-feature-flag'
40
+ detectionMethod: 'claude-json-feature-flag',
41
41
  };
42
42
  }
43
43
  }
@@ -47,7 +47,7 @@ function detectDeferLoading() {
47
47
  return {
48
48
  available: false,
49
49
  reason: 'defer_loading is API-only (Python SDK). Not exposed in Claude Code CLI.',
50
- source: 'ADR-7 / Codex CRITICO-1'
50
+ source: 'ADR-7 / Codex CRITICO-1',
51
51
  };
52
52
  }
53
53
 
@@ -60,7 +60,7 @@ function detectProjectMcps() {
60
60
  name,
61
61
  type: cfg.type || 'command',
62
62
  scope: 'project',
63
- source: '.mcp.json'
63
+ source: '.mcp.json',
64
64
  }));
65
65
  } catch {
66
66
  return [];
@@ -83,7 +83,7 @@ function detectGlobalMcps() {
83
83
  name: match[1],
84
84
  type: 'docker-gateway',
85
85
  scope: 'global',
86
- source: '~/.docker/mcp/config.yaml'
86
+ source: '~/.docker/mcp/config.yaml',
87
87
  });
88
88
  }
89
89
  }
@@ -103,7 +103,7 @@ function detectGlobalMcps() {
103
103
  name,
104
104
  type: cfg.type || 'command',
105
105
  scope: 'global-settings',
106
- source: '~/.claude/settings.json'
106
+ source: '~/.claude/settings.json',
107
107
  });
108
108
  }
109
109
  }
@@ -121,7 +121,7 @@ function detectDockerGateway() {
121
121
  return {
122
122
  available: exists,
123
123
  configPath: exists ? dockerMcpDir : null,
124
- detectionMethod: 'filesystem-check'
124
+ detectionMethod: 'filesystem-check',
125
125
  };
126
126
  }
127
127
 
@@ -180,7 +180,7 @@ function loadToolRegistry() {
180
180
  tier2Count: tier2,
181
181
  tier3Count: tier3,
182
182
  essential,
183
- nonEssential
183
+ nonEssential,
184
184
  };
185
185
  } catch {
186
186
  return { available: false, totalTools: 0, tier1Count: 0, tier2Count: 0, tier3Count: 0, essential: [], nonEssential: [] };
@@ -197,7 +197,7 @@ function determineStrategy(toolSearch, deferLoading, dockerGateway) {
197
197
  return {
198
198
  primary: 'tool-search-auto',
199
199
  description: 'Claude Code Tool Search is active. Tier 3 MCP tools are automatically deferred via tool_search.',
200
- fallbacks: ['mcp-discipline', 'claudemd-guidance']
200
+ fallbacks: ['mcp-discipline', 'claudemd-guidance'],
201
201
  };
202
202
  }
203
203
 
@@ -205,14 +205,14 @@ function determineStrategy(toolSearch, deferLoading, dockerGateway) {
205
205
  return {
206
206
  primary: 'mcp-discipline',
207
207
  description: 'Tool Search not available. Using MCP discipline: disable non-essential servers in .mcp.json.',
208
- fallbacks: ['claudemd-guidance']
208
+ fallbacks: ['claudemd-guidance'],
209
209
  };
210
210
  }
211
211
 
212
212
  return {
213
213
  primary: 'claudemd-guidance',
214
214
  description: 'Neither Tool Search nor Docker Gateway available. Using CLAUDE.md guidance for tool selection priority.',
215
- fallbacks: []
215
+ fallbacks: [],
216
216
  };
217
217
  }
218
218
 
@@ -236,20 +236,20 @@ function run() {
236
236
 
237
237
  methodology: {
238
238
  toolSearchLatency: 'Managed internally by Claude Code — not programmatically measurable. Guidance-level enforcement via CLAUDE.md.',
239
- mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).'
239
+ mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).',
240
240
  },
241
241
 
242
242
  runtime: {
243
243
  toolSearch,
244
244
  deferLoading,
245
- dockerGateway
245
+ dockerGateway,
246
246
  },
247
247
 
248
248
  mcpServers: {
249
249
  project: projectMcps,
250
250
  global: globalMcps,
251
251
  totalCount: projectMcps.length + globalMcps.length,
252
- countUnit: 'servers'
252
+ countUnit: 'servers',
253
253
  },
254
254
 
255
255
  toolRegistry,
@@ -263,7 +263,7 @@ function run() {
263
263
 
264
264
  nonEssentialServers: toolRegistry.nonEssential.length > 0
265
265
  ? toolRegistry.nonEssential
266
- : []
266
+ : [],
267
267
  };
268
268
 
269
269
  // Ensure output directory exists
@@ -13,9 +13,6 @@
13
13
  * Reference: TOK-1.5 Baseline (docs/stories/epics/epic-token-optimization/story-TOK-1.5-baseline-metrics.md)
14
14
  */
15
15
 
16
- const fs = require('fs');
17
- const path = require('path');
18
- const yaml = require ? null : null; // yaml not required — we parse manually
19
16
 
20
17
  // --- Token estimation model ---
21
18
  // Based on tool-registry.yaml tokenCost and observed output patterns
@@ -22,7 +22,7 @@ const TEST_QUERIES = [
22
22
  { query: 'analyze code dependencies', expectedTool: 'code-graph', category: 'code-intelligence' },
23
23
  { query: 'code analysis intelligence', expectedTool: 'nogic', category: 'code-intelligence' },
24
24
  { query: 'look up library documentation', expectedTool: 'context7', category: 'documentation' },
25
- { query: 'database query optimization', expectedTool: 'supabase', category: 'database' }
25
+ { query: 'database query optimization', expectedTool: 'supabase', category: 'database' },
26
26
  ];
27
27
 
28
28
  function parseKeywords(content) {