sinapse-ai 1.19.0 → 1.19.2
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/.sinapse-ai/core/execution/build-orchestrator.js +31 -0
- package/.sinapse-ai/core/orchestration/bob-orchestrator.js +2 -4
- package/.sinapse-ai/core/orchestration/executors/epic-4-executor.js +57 -40
- package/.sinapse-ai/core/orchestration/gate-evaluator.js +124 -3
- package/.sinapse-ai/core/orchestration/greenfield-handler.js +14 -46
- package/.sinapse-ai/core/orchestration/index.js +0 -12
- package/.sinapse-ai/core/orchestration/master-orchestrator.js +60 -4
- package/.sinapse-ai/core/orchestration/workflow-executor.js +8 -150
- package/.sinapse-ai/data/entity-registry.yaml +315 -527
- package/.sinapse-ai/development/agents/project-lead/MEMORY.md +1 -1
- package/.sinapse-ai/development/agents/project-lead.md +9 -13
- package/.sinapse-ai/development/tasks/push-and-pr.md +1 -1
- package/.sinapse-ai/development/workflows/development-cycle.yaml +1 -12
- package/.sinapse-ai/install-manifest.yaml +26 -34
- package/CHANGELOG.md +41 -26
- package/package.json +1 -1
- package/.sinapse-ai/core/orchestration/terminal-spawner.js +0 -1067
- package/.sinapse-ai/scripts/pm.sh +0 -466
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
### Bob Mode (user_profile=bob)
|
|
23
23
|
- PM acts as orchestrator when `user_profile: bob`
|
|
24
|
-
-
|
|
24
|
+
- Hands off other agents honestly (manual hand-off — no fabricated execution)
|
|
25
25
|
- Session state persistence in `.sinapse/bob-session/`
|
|
26
26
|
|
|
27
27
|
### Key Locations
|
|
@@ -25,7 +25,7 @@ activation-instructions:
|
|
|
25
25
|
- If user_profile === 'bob':
|
|
26
26
|
→ Load bob-orchestrator.js module from .sinapse-ai/core/orchestration/bob-orchestrator.js
|
|
27
27
|
→ greeting-builder.js will handle the greeting with bob mode redirect
|
|
28
|
-
→ PM operates as Bob: orchestrates other agents
|
|
28
|
+
→ PM operates as Bob: orchestrates other agents, handing off execution honestly
|
|
29
29
|
- If user_profile === 'advanced':
|
|
30
30
|
→ PM operates as standard Product Manager (no orchestration)
|
|
31
31
|
→ Normal greeting and command set
|
|
@@ -147,24 +147,20 @@ persona:
|
|
|
147
147
|
orchestration_constraints:
|
|
148
148
|
rule: NEVER_EMULATE_AGENTS
|
|
149
149
|
description: |
|
|
150
|
-
Bob (PM) orchestrates other agents
|
|
151
|
-
|
|
150
|
+
Bob (PM) orchestrates other agents and hands off execution honestly — it never
|
|
151
|
+
emulates another agent within its own context window.
|
|
152
152
|
behavior:
|
|
153
153
|
- NEVER pretend to be another agent (@developer, @architect, @quality-gate, etc.)
|
|
154
154
|
- NEVER simulate agent responses within your own context
|
|
155
|
-
- When a task requires another agent,
|
|
156
|
-
-
|
|
157
|
-
|
|
158
|
-
spawning_workflow:
|
|
155
|
+
- When a task requires another agent, hand off the work explicitly (manual hand-off)
|
|
156
|
+
- Present the collected output back to the user
|
|
157
|
+
handoff_workflow:
|
|
159
158
|
1_analyze: Analyze user request to determine required agent and task
|
|
160
159
|
2_assign: Use ExecutorAssignment to get the correct agent for the work type
|
|
161
|
-
3_prepare:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
6_return: Present agent output to user
|
|
160
|
+
3_prepare: Assemble context with story, relevant files, and instructions
|
|
161
|
+
4_handoff: Hand off the agent + task + context for execution (honest, no fabricated run)
|
|
162
|
+
5_return: Present agent output to user
|
|
165
163
|
integration:
|
|
166
|
-
module: .sinapse-ai/core/orchestration/terminal-spawner.js
|
|
167
|
-
script: .sinapse-ai/scripts/pm.sh
|
|
168
164
|
executor_assignment: .sinapse-ai/core/orchestration/executor-assignment.js
|
|
169
165
|
|
|
170
166
|
# All commands require * prefix when used (e.g., *help)
|
|
@@ -20,7 +20,7 @@ After `qa-review-story.md` produces a PASS/CONCERNS verdict, automatically:
|
|
|
20
20
|
|
|
21
21
|
- **Triggered by:** `development-cycle.yaml` Phase 5 (`5_push`)
|
|
22
22
|
- **Pre-condition:** Story status `InReview`, QA verdict `PASS` or `CONCERNS`
|
|
23
|
-
- **
|
|
23
|
+
- **Execution:** handed off (manual) to @devops — the cycle does not invoke the agent in-process
|
|
24
24
|
|
|
25
25
|
## Inputs
|
|
26
26
|
|
|
@@ -36,10 +36,6 @@ workflow:
|
|
|
36
36
|
use_dynamic_executor: true
|
|
37
37
|
executor_assignment_module: ".sinapse-ai/core/orchestration/executor-assignment.js"
|
|
38
38
|
|
|
39
|
-
# Terminal spawning from Story 11.2
|
|
40
|
-
use_terminal_spawning: true
|
|
41
|
-
terminal_spawner_module: ".sinapse-ai/core/orchestration/terminal-spawner.js"
|
|
42
|
-
|
|
43
39
|
# Self-healing configuration
|
|
44
40
|
self_healing:
|
|
45
41
|
enabled: "${config.coderabbit_integration.enabled}"
|
|
@@ -122,9 +118,7 @@ workflow:
|
|
|
122
118
|
task: "dev-develop-story"
|
|
123
119
|
description: >-
|
|
124
120
|
Executor dinâmico desenvolve a story baseado na atribuição.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
spawn_in_terminal: true # Use TerminalSpawner
|
|
121
|
+
A execução do agente é entregue (hand-off manual honesto).
|
|
128
122
|
|
|
129
123
|
inputs:
|
|
130
124
|
- validated_story:
|
|
@@ -199,8 +193,6 @@ workflow:
|
|
|
199
193
|
Quality gate executado por agente DIFERENTE do executor.
|
|
200
194
|
Valida código, testes, arquitetura e padrões.
|
|
201
195
|
|
|
202
|
-
spawn_in_terminal: true # Use TerminalSpawner
|
|
203
|
-
|
|
204
196
|
inputs:
|
|
205
197
|
- implementation:
|
|
206
198
|
from: 2_development.implementation
|
|
@@ -238,8 +230,6 @@ workflow:
|
|
|
238
230
|
DevOps executa push ao final de cada story aprovada.
|
|
239
231
|
Cria PR automaticamente com referência à story.
|
|
240
232
|
|
|
241
|
-
spawn_in_terminal: true # Use TerminalSpawner
|
|
242
|
-
|
|
243
233
|
inputs:
|
|
244
234
|
- reviewed_code:
|
|
245
235
|
from: 4_quality_gate.review_result
|
|
@@ -510,7 +500,6 @@ metadata:
|
|
|
510
500
|
- orchestration
|
|
511
501
|
- development-cycle
|
|
512
502
|
- dynamic-executor
|
|
513
|
-
- terminal-spawning
|
|
514
503
|
- self-healing
|
|
515
504
|
- checkpoint
|
|
516
505
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
# - SHA256 hashes for change detection
|
|
8
8
|
# - File types for categorization
|
|
9
9
|
#
|
|
10
|
-
version: 1.19.
|
|
10
|
+
version: 1.19.2
|
|
11
11
|
generator: scripts/generate-install-manifest.js
|
|
12
|
-
file_count:
|
|
12
|
+
file_count: 1161
|
|
13
13
|
files:
|
|
14
14
|
- path: cli/commands/config/index.js
|
|
15
15
|
hash: sha256:bfa83cb1dc111b0b30dd298dc0abc2150b73f939b6cd4458effa8e6d407bc9e2
|
|
@@ -496,9 +496,9 @@ files:
|
|
|
496
496
|
type: core
|
|
497
497
|
size: 34059
|
|
498
498
|
- path: core/execution/build-orchestrator.js
|
|
499
|
-
hash: sha256:
|
|
499
|
+
hash: sha256:6b1a213652493a7f453267d2f4f7937f5dac625cdfb95ca558747468922cb12f
|
|
500
500
|
type: core
|
|
501
|
-
size:
|
|
501
|
+
size: 41204
|
|
502
502
|
- path: core/execution/build-state-manager.js
|
|
503
503
|
hash: sha256:3b2fe56bf0e1a480f663a02afbb83c6d11cf89fb56815381c7ccafab948a63ae
|
|
504
504
|
type: core
|
|
@@ -928,9 +928,9 @@ files:
|
|
|
928
928
|
type: core
|
|
929
929
|
size: 17581
|
|
930
930
|
- path: core/orchestration/bob-orchestrator.js
|
|
931
|
-
hash: sha256:
|
|
931
|
+
hash: sha256:5a217af9eac46432b851353129fe9fdb15f3b439e46ec843dfb59a79da0d1f86
|
|
932
932
|
type: core
|
|
933
|
-
size:
|
|
933
|
+
size: 47380
|
|
934
934
|
- path: core/orchestration/bob-status-writer.js
|
|
935
935
|
hash: sha256:7bbe95c493c44163546317479c5e330063e93a547ba60dfa27eddb2f85ba4489
|
|
936
936
|
type: core
|
|
@@ -992,9 +992,9 @@ files:
|
|
|
992
992
|
type: core
|
|
993
993
|
size: 9463
|
|
994
994
|
- path: core/orchestration/executors/epic-4-executor.js
|
|
995
|
-
hash: sha256:
|
|
995
|
+
hash: sha256:9aa50bd546d00d79e9ed2642377a66cdecef4f91c36440fde5ef617b18296226
|
|
996
996
|
type: core
|
|
997
|
-
size:
|
|
997
|
+
size: 11029
|
|
998
998
|
- path: core/orchestration/executors/epic-5-executor.js
|
|
999
999
|
hash: sha256:865224cd6cb1f80c1228e149349aea5c335440201c9047f849d2ec85b73d3f03
|
|
1000
1000
|
type: core
|
|
@@ -1016,25 +1016,25 @@ files:
|
|
|
1016
1016
|
type: core
|
|
1017
1017
|
size: 10211
|
|
1018
1018
|
- path: core/orchestration/gate-evaluator.js
|
|
1019
|
-
hash: sha256:
|
|
1019
|
+
hash: sha256:514c80ec7b305bf85d9816bca4ecdfc972faa84796a84794fef71d302a93f72b
|
|
1020
1020
|
type: core
|
|
1021
|
-
size:
|
|
1021
|
+
size: 23437
|
|
1022
1022
|
- path: core/orchestration/greenfield-handler.js
|
|
1023
|
-
hash: sha256:
|
|
1023
|
+
hash: sha256:330be2c76c3eb5a9a1f1c975837308802b8fc6fb871f9b584787ae4e2aa8fcb1
|
|
1024
1024
|
type: core
|
|
1025
|
-
size:
|
|
1025
|
+
size: 40129
|
|
1026
1026
|
- path: core/orchestration/index.js
|
|
1027
|
-
hash: sha256:
|
|
1027
|
+
hash: sha256:cc7252ff358565d802f786079f46fd1ffdc6ee4b19e94fd70441169b2a6ead13
|
|
1028
1028
|
type: core
|
|
1029
|
-
size:
|
|
1029
|
+
size: 9069
|
|
1030
1030
|
- path: core/orchestration/lock-manager.js
|
|
1031
1031
|
hash: sha256:b269b3c17d575f2dbca8e749585ad9133ab60dbfd7d74a85e6a776d2bb1909b4
|
|
1032
1032
|
type: core
|
|
1033
1033
|
size: 8667
|
|
1034
1034
|
- path: core/orchestration/master-orchestrator.js
|
|
1035
|
-
hash: sha256:
|
|
1035
|
+
hash: sha256:ef93435d1d13378a9d469ac8671de919e0918268471d818806899bd36d31c0ad
|
|
1036
1036
|
type: core
|
|
1037
|
-
size:
|
|
1037
|
+
size: 63249
|
|
1038
1038
|
- path: core/orchestration/message-formatter.js
|
|
1039
1039
|
hash: sha256:4683565c3da6d33fa5aeb4629dfa525f90715cb3b3cbbaa4c8a8d952766839d7
|
|
1040
1040
|
type: core
|
|
@@ -1075,14 +1075,10 @@ files:
|
|
|
1075
1075
|
hash: sha256:69de9c5edfb42f0faf91def9d8e9d46237fce51baa22d9c2c7aa5e37999d6d2f
|
|
1076
1076
|
type: core
|
|
1077
1077
|
size: 16495
|
|
1078
|
-
- path: core/orchestration/terminal-spawner.js
|
|
1079
|
-
hash: sha256:698bbf0df1d988b98be470528d8f3f261a0ffd6294150fdbb369af1e29ed7fde
|
|
1080
|
-
type: core
|
|
1081
|
-
size: 32247
|
|
1082
1078
|
- path: core/orchestration/workflow-executor.js
|
|
1083
|
-
hash: sha256:
|
|
1079
|
+
hash: sha256:c7aca8a292efcf20185cd30d6a582c6239a55a9871e4e63ed1c49a6aebf35f7a
|
|
1084
1080
|
type: core
|
|
1085
|
-
size:
|
|
1081
|
+
size: 37636
|
|
1086
1082
|
- path: core/orchestration/workflow-orchestrator.js
|
|
1087
1083
|
hash: sha256:6e97eec88c8261f15bad79c47b0eafcfe39fbda5c837e156fe803802c3a1c18f
|
|
1088
1084
|
type: core
|
|
@@ -1384,9 +1380,9 @@ files:
|
|
|
1384
1380
|
type: data
|
|
1385
1381
|
size: 9671
|
|
1386
1382
|
- path: data/entity-registry.yaml
|
|
1387
|
-
hash: sha256:
|
|
1383
|
+
hash: sha256:b02617f7a416a1b20f690293a2c15fa4d2d14a6963788e5935906f47e2fa05a7
|
|
1388
1384
|
type: data
|
|
1389
|
-
size:
|
|
1385
|
+
size: 549437
|
|
1390
1386
|
- path: data/learned-patterns.yaml
|
|
1391
1387
|
hash: sha256:1a4cd045c087b9dfd7046ff1464a9d2edb85fba77cf0b6fba14f4bb9004c741e
|
|
1392
1388
|
type: data
|
|
@@ -1512,9 +1508,9 @@ files:
|
|
|
1512
1508
|
type: agent
|
|
1513
1509
|
size: 16213
|
|
1514
1510
|
- path: development/agents/project-lead.md
|
|
1515
|
-
hash: sha256:
|
|
1511
|
+
hash: sha256:571533353e320db3be8097960190b9e5fce6a876c58159886fd41ee11b745216
|
|
1516
1512
|
type: agent
|
|
1517
|
-
size:
|
|
1513
|
+
size: 18402
|
|
1518
1514
|
- path: development/agents/quality-gate.md
|
|
1519
1515
|
hash: sha256:bc99385b3aee34ed5234287f37b53dd57c1f59b7f4cf1bd401447da4562117d4
|
|
1520
1516
|
type: agent
|
|
@@ -2420,9 +2416,9 @@ files:
|
|
|
2420
2416
|
type: task
|
|
2421
2417
|
size: 6511
|
|
2422
2418
|
- path: development/tasks/push-and-pr.md
|
|
2423
|
-
hash: sha256:
|
|
2419
|
+
hash: sha256:0f0698e39beba99b7bee88e391ba403323cd2aeea8661ec0eefc025faaa038e6
|
|
2424
2420
|
type: task
|
|
2425
|
-
size:
|
|
2421
|
+
size: 3092
|
|
2426
2422
|
- path: development/tasks/qa-after-creation.md
|
|
2427
2423
|
hash: sha256:5ed9bb8dbf76fbc7ed79e00423b70a6a8caf315d31ec580a5514f0f5a49173e8
|
|
2428
2424
|
type: task
|
|
@@ -3008,9 +3004,9 @@ files:
|
|
|
3008
3004
|
type: workflow
|
|
3009
3005
|
size: 6949
|
|
3010
3006
|
- path: development/workflows/development-cycle.yaml
|
|
3011
|
-
hash: sha256:
|
|
3007
|
+
hash: sha256:a50a76f0dd6e1c84258f71412b4ba89d2846855f2d7e110b1fdd3e05dde5a8ae
|
|
3012
3008
|
type: workflow
|
|
3013
|
-
size:
|
|
3009
|
+
size: 15633
|
|
3014
3010
|
- path: development/workflows/epic-orchestration.yaml
|
|
3015
3011
|
hash: sha256:be5c5c28bb0fb41c6df383952d8aba9efb02dbf58e3521983f65a79212c38d84
|
|
3016
3012
|
type: workflow
|
|
@@ -4547,10 +4543,6 @@ files:
|
|
|
4547
4543
|
hash: sha256:ba1f1dece08387e385a8f71fc872fc9d62dc0a0cd45702b5135dc0d286aebd63
|
|
4548
4544
|
type: script
|
|
4549
4545
|
size: 9539
|
|
4550
|
-
- path: scripts/pm.sh
|
|
4551
|
-
hash: sha256:060c5ab9ee43372e2177353b2b6f54f036b7dd86122fc6e2dc6e91fb0e3ab6d2
|
|
4552
|
-
type: script
|
|
4553
|
-
size: 12644
|
|
4554
4546
|
- path: scripts/README.md
|
|
4555
4547
|
hash: sha256:d6961b96ff7163261d6f56f441f2fb0a35568d5e0034aa4bfecc9fe0993edfe1
|
|
4556
4548
|
type: script
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.19.2] — 2026-07-01 — 🔒 Honestidade do gate (build vazio não passa) + aposta medida
|
|
11
|
+
|
|
12
|
+
> Patch. Atualização segura via `npx sinapse-ai update`. Fecha o último furo de honestidade do motor achado ao medir a aposta de orquestração multi-story.
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **orchestration** — o gate `epic4_to_epic6` aprovava (score 5.0) um build que não escreveu **nenhum arquivo**: o check `implementation_exists` aceitava `implementationPath`, que o epic-4 setava para o caminho do **plano** (sempre existe). Agora o check exige arquivos de código **reais** (`codeChanges` + `filesModified`, excluindo o plano) e bloqueia build vazio; o epic-4 não usa mais o `implementationPath` enganoso e o `BuildOrchestrator` expõe `filesModified` de verdade. Estende a invariante de honestidade — build "sucedido" sem arquivos ≠ sucesso (#317).
|
|
17
|
+
|
|
18
|
+
### Documentation
|
|
19
|
+
|
|
20
|
+
- **epic** — fecha o épico `orchestration-consolidation` com o **veredito medido do checkpoint "matar ou dobrar"**: HÍBRIDO. Na medição multi-story, o modo nativo entregou 3/3 stories em 64s e 1 chamada, enquanto o motor entregou 1/3 em ~13,5min (a coordenação multi-story corrompeu o estado entre stories). O motor é assumido como **assistente de story isolada** (spec + plano reais); a orquestração autônoma multi-story vira **limitação documentada** (`KNOWN-LIMITATIONS.md`), não promessa. Docs públicos já eram honestos (#318).
|
|
21
|
+
|
|
22
|
+
## [1.19.1] — 2026-06-30 — 🔧 Motor honesto ponta-a-ponta + Windows-safe
|
|
23
|
+
|
|
24
|
+
> Patch. Atualização segura via `npx sinapse-ai update`. Fecha 2 defeitos do motor expostos pelo checkpoint e2e do épico orchestration-consolidation.
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
- **orchestration** — fecha o vazamento da invariante de honestidade no nível master/gate: um épico que falhava **retornando** `{success:false}` (sem lançar) escapava do `catch` e era marcado COMPLETED, fazendo o pipeline reportar `ORCHESTRATION COMPLETE` + exit 0 com zero trabalho; o gate de QA aprovava (score 5.0) um QA report `BLOCKED`. Agora o master marca FAILED, `finalize` exige zero falhas e o gate ganhou o check crítico `result_not_failed` (#314).
|
|
29
|
+
- **orchestration** — corrige crash no Windows: `_createStubPlan` serializava o `specPath` Windows por template-string em YAML de aspas duplas (`\U` inválido), matando a fase de execução em ~4ms; agora usa `yaml.dump` (robusto a qualquer path) (#315).
|
|
30
|
+
|
|
31
|
+
### Refactor
|
|
32
|
+
|
|
33
|
+
- **engine** — F3C: aposenta a linhagem morta `terminal-spawner → pm.sh` (stub que nunca invocou claude), unificando no caminho canônico `dispatcher → claude` e fechando a DoD "3 linhagens viram 1" do épico; fallback honesto preservado, ~3.7k linhas de código morto removidas (#312).
|
|
34
|
+
|
|
35
|
+
### Documentation
|
|
36
|
+
|
|
37
|
+
- **epic** — relatório do checkpoint e2e "matar ou dobrar" (orchestrate vs nativo); veredito: híbrido com disciplina, re-medir com tarefa multi-story (#313).
|
|
38
|
+
- **changelog** — consolida entrada `[Unreleased]` órfã na `[1.2.1]` (#311).
|
|
39
|
+
|
|
10
40
|
## [1.19.0] — 2026-06-30 — ⚙️ Motor de orquestração real (do teatro ao código)
|
|
11
41
|
|
|
12
42
|
> Minor release. Atualização segura via `npx sinapse-ai update`.
|
|
@@ -570,6 +600,17 @@ npm install sinapse-ai@latest
|
|
|
570
600
|
package.json and prints raw semver only — no banner, no ANSI — so scripts
|
|
571
601
|
capture cleanly.
|
|
572
602
|
- 5 contract tests in `tests/unit/cli-version-flag.test.js`.
|
|
603
|
+
- `docs/glossary.md` with official SINAPSE taxonomy terms: `squad`, `flow-state`, `confidence gate`, `execution profile`.
|
|
604
|
+
- `scripts/semantic-lint.js` for semantic terminology regression checks, plus `tests/unit/semantic-lint.test.js`.
|
|
605
|
+
|
|
606
|
+
### Changed
|
|
607
|
+
|
|
608
|
+
- CI now includes a `Semantic Lint` job (`npm run validate:semantic-lint`).
|
|
609
|
+
- Pre-commit markdown pipeline now runs semantic lint through `lint-staged`.
|
|
610
|
+
|
|
611
|
+
### Migration Notes
|
|
612
|
+
|
|
613
|
+
- Deprecated terminology replacements: `expansion pack` -> `squad`, `permission mode` -> `execution profile`, `workflow state` -> `flow-state` (warning-level migration).
|
|
573
614
|
|
|
574
615
|
## [1.2.0] — 2026-05-04 — 🎉 GA Definitiva (versioning reset, branding SNPS AI)
|
|
575
616
|
|
|
@@ -1221,32 +1262,6 @@ warnings.
|
|
|
1221
1262
|
- Greenfield projects without `package.json` now get `npm init -y` automatically before pro install.
|
|
1222
1263
|
- Removed unused `headings` import in `pro-setup.js`.
|
|
1223
1264
|
|
|
1224
|
-
## [Unreleased]
|
|
1225
|
-
|
|
1226
|
-
### Added
|
|
1227
|
-
|
|
1228
|
-
- `docs/glossary.md` with official SINAPSE taxonomy terms:
|
|
1229
|
-
- `squad`
|
|
1230
|
-
- `flow-state`
|
|
1231
|
-
- `confidence gate`
|
|
1232
|
-
- `execution profile`
|
|
1233
|
-
- `scripts/semantic-lint.js` for semantic terminology regression checks.
|
|
1234
|
-
- `tests/unit/semantic-lint.test.js` for semantic lint rule validation.
|
|
1235
|
-
|
|
1236
|
-
### Changed
|
|
1237
|
-
|
|
1238
|
-
- CI now includes a `Semantic Lint` job (`npm run validate:semantic-lint`).
|
|
1239
|
-
- Pre-commit markdown pipeline now runs semantic lint through `lint-staged`.
|
|
1240
|
-
|
|
1241
|
-
### Migration Notes
|
|
1242
|
-
|
|
1243
|
-
- Deprecated terminology replacements:
|
|
1244
|
-
- `expansion pack` -> `squad`
|
|
1245
|
-
- `permission mode` -> `execution profile`
|
|
1246
|
-
- `workflow state` -> `flow-state` (warning-level migration)
|
|
1247
|
-
|
|
1248
|
-
---
|
|
1249
|
-
|
|
1250
1265
|
## [3.9.0] - 2025-12-26
|
|
1251
1266
|
|
|
1252
1267
|
### Highlights
|