@hassangameryt/freeflow 0.6.0 → 0.7.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 (122) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.codex-plugin/plugin.json +4 -5
  4. package/README.md +39 -55
  5. package/capabilities/cognitive-routing/SKILL.md +288 -130
  6. package/command-surface.json +0 -24
  7. package/hooks/freeflow-runtime-context.mjs +42 -477
  8. package/hooks/hooks.json +1 -26
  9. package/hooks/tests/check-runtime-context-hook.sh +108 -319
  10. package/package.json +4 -2
  11. package/pi-extension/dist/cognitive-routing/commands.js +3 -3
  12. package/pi-extension/dist/cognitive-routing/config.js +16 -20
  13. package/pi-extension/dist/cognitive-routing/controller.js +478 -48
  14. package/pi-extension/dist/cognitive-routing/history.js +12 -0
  15. package/pi-extension/dist/cognitive-routing/host.js +74 -12
  16. package/pi-extension/dist/cognitive-routing/pi-routing-session.js +414 -0
  17. package/pi-extension/dist/cognitive-routing/pi-session-control.js +320 -0
  18. package/pi-extension/dist/cognitive-routing/tool.js +1 -0
  19. package/pi-extension/dist/cognitive-routing/types.js +1 -1
  20. package/pi-extension/dist/index.js +236 -219
  21. package/pi-extension/dist/runtime/runtime-context.js +126 -286
  22. package/pi-extension/dist/settings/settings-ui.js +52 -336
  23. package/pi-extension/src/cognitive-routing/commands.ts +15 -5
  24. package/pi-extension/src/cognitive-routing/config.ts +16 -20
  25. package/pi-extension/src/cognitive-routing/controller.ts +561 -51
  26. package/pi-extension/src/cognitive-routing/history.ts +12 -0
  27. package/pi-extension/src/cognitive-routing/host.ts +110 -16
  28. package/pi-extension/src/cognitive-routing/pi-routing-session.ts +538 -0
  29. package/pi-extension/src/cognitive-routing/pi-session-control.ts +444 -0
  30. package/pi-extension/src/cognitive-routing/tool.ts +1 -0
  31. package/pi-extension/src/cognitive-routing/types.ts +1 -1
  32. package/pi-extension/src/index.ts +249 -239
  33. package/pi-extension/src/runtime/runtime-context.ts +129 -305
  34. package/pi-extension/src/settings/settings-ui.ts +53 -371
  35. package/pi-extension/tests/cognitive-routing/commands.test.js +1 -1
  36. package/pi-extension/tests/cognitive-routing/controller.test.js +69 -40
  37. package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +128 -57
  38. package/pi-extension/tests/cognitive-routing/pi-normal-lifecycle.test.js +434 -0
  39. package/pi-extension/tests/cognitive-routing/pi-session-control.test.js +174 -0
  40. package/pi-extension/tests/cognitive-routing/pi-session-history.test.js +91 -0
  41. package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +47 -4
  42. package/pi-extension/tests/integration/mode-free-core.test.js +218 -0
  43. package/pi-extension/tests/integration/pi-extension.test.js +430 -2478
  44. package/pi-extension/tests/integration/prompt-architecture.test.js +124 -79
  45. package/pi-extension/tests/integration/unaffected-regressions.test.js +411 -0
  46. package/runtime/prompts/cognitive-routing.md +5 -4
  47. package/runtime/prompts/conversation-history.md +1 -1
  48. package/runtime/prompts/core.md +77 -6
  49. package/runtime/prompts/interaction-contract.md +6 -2
  50. package/skills/action-selection/SKILL.md +93 -44
  51. package/skills/action-selection/references/trajectory-stalls.md +71 -0
  52. package/skills/bypass/SKILL.md +109 -39
  53. package/skills/commit-work/SKILL.md +94 -55
  54. package/skills/commit-work/references/git-state-edges.md +94 -0
  55. package/skills/commit-work/references/simple-push.md +92 -0
  56. package/skills/commit-work/references/staging-decisions.md +79 -46
  57. package/skills/decision-gate/SKILL.md +80 -22
  58. package/skills/design-for-depth/SKILL.md +208 -43
  59. package/skills/design-for-depth/references/design-pressure-signals.md +108 -240
  60. package/skills/design-for-depth/references/interface-design-loop.md +77 -97
  61. package/skills/design-for-depth/references/module-and-dependency-design.md +147 -0
  62. package/skills/design-for-depth/references/software-design-philosophy.md +127 -173
  63. package/skills/design-for-depth/references/state-and-failure-boundaries.md +136 -0
  64. package/skills/diagnose-failure/SKILL.md +198 -52
  65. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +19 -5
  66. package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +13 -5
  67. package/skills/discuss/SKILL.md +118 -76
  68. package/skills/discuss/references/discussion-continuity.md +84 -32
  69. package/skills/evaluate-skill/SKILL.md +166 -52
  70. package/skills/evaluate-skill/references/evaluation-definition-schema.md +2 -2
  71. package/skills/evaluate-skill/references/evaluation-design.md +56 -30
  72. package/skills/evaluate-skill/references/execution-and-evidence.md +1 -1
  73. package/skills/evaluate-skill/references/review-and-revision.md +62 -21
  74. package/skills/execute-work/SKILL.md +98 -59
  75. package/skills/execute-work/references/code-practices.md +4 -4
  76. package/skills/execute-work/references/execute-work-edges.md +42 -22
  77. package/skills/review-artifact/SKILL.md +132 -71
  78. package/skills/review-artifact/references/adjudicate-artifact-review.md +101 -0
  79. package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +52 -41
  80. package/skills/review-work/SKILL.md +115 -72
  81. package/skills/review-work/references/adjudicate-work-review.md +97 -0
  82. package/skills/review-work/references/independent-work-reviewer-contract.md +40 -35
  83. package/skills/review-work/references/security-risk-lens.md +17 -15
  84. package/skills/setup-freeflow/SKILL.md +14 -17
  85. package/skills/setup-freeflow/references/activation-contract.md +24 -30
  86. package/skills/setup-freeflow/references/host-setup.md +6 -7
  87. package/skills/simplify-code/SKILL.md +97 -39
  88. package/skills/simplify-code/references/simplification-patterns.md +1 -1
  89. package/skills/tdd/SKILL.md +108 -41
  90. package/skills/tdd/references/test-design.md +1 -1
  91. package/skills/track-work/SKILL.md +133 -300
  92. package/skills/track-work/references/working-record-format.md +515 -0
  93. package/skills/track-work/scripts/lib/document.mjs +713 -0
  94. package/skills/track-work/scripts/lib/format.mjs +166 -0
  95. package/skills/track-work/scripts/lib/store.mjs +233 -0
  96. package/skills/track-work/scripts/lib/transitions.mjs +790 -0
  97. package/skills/track-work/scripts/lib/views.mjs +27 -430
  98. package/skills/track-work/scripts/working-record.mjs +292 -98
  99. package/skills/verify-work/SKILL.md +46 -20
  100. package/skills/verify-work/references/browser-runtime-evidence.md +1 -1
  101. package/skills/verify-work/references/integration-evidence.md +1 -7
  102. package/skills/verify-work/references/performance-evidence.md +1 -1
  103. package/skills/workflow/SKILL.md +110 -80
  104. package/skills/workflow/references/domain-skill-composition.md +24 -18
  105. package/skills/write-skill/SKILL.md +218 -62
  106. package/skills/write-skill/references/activation-boundaries.md +63 -21
  107. package/skills/write-skill/references/agent-first-instructions.md +61 -27
  108. package/skills/write-skill/references/progressive-disclosure.md +91 -41
  109. package/skills/write-skill/references/skill-dependency-graphs.md +190 -0
  110. package/runtime/prompts/skills.md +0 -65
  111. package/skills/mode-contract/SKILL.md +0 -104
  112. package/skills/track-work/scripts/lib/codec.mjs +0 -570
  113. package/skills/track-work/scripts/lib/commands.mjs +0 -568
  114. package/skills/track-work/scripts/lib/contract.mjs +0 -303
  115. package/skills/track-work/scripts/lib/model.mjs +0 -506
  116. package/skills/track-work/scripts/lib/operations.mjs +0 -965
  117. package/skills/track-work/scripts/lib/record-store.mjs +0 -264
  118. package/skills/track-work/scripts/lib/result.mjs +0 -37
  119. package/skills/track-work/scripts/lib/rewrites.mjs +0 -740
  120. package/skills/track-work/scripts/lib/schema.mjs +0 -277
  121. package/skills/track-work/scripts/lib/source-inventory.mjs +0 -162
  122. package/skills/track-work/scripts/lib/workspace.mjs +0 -134
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "freeflow",
12
12
  "description": "Feedback-based control for coding agents.",
13
- "version": "0.6.0",
13
+ "version": "0.7.0",
14
14
  "category": "development",
15
15
  "source": "./",
16
16
  "author": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "freeflow",
3
- "description": "Freeflow gives coding agents an Interaction Contract, evidence-driven Workflow, focused methods, and durable task memory across conversation, workflow, and strict-workflow modes.",
4
- "version": "0.6.0",
3
+ "description": "Freeflow gives coding agents an Interaction Contract, adaptive Workflow, focused methods, and durable task memory.",
4
+ "version": "0.7.0",
5
5
  "author": {
6
6
  "name": "Hassan Mohiddin"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "freeflow",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Feedback-based control system for coding agents.",
5
5
  "author": {
6
6
  "name": "Hassan Mohiddin"
@@ -25,14 +25,13 @@
25
25
  "interface": {
26
26
  "displayName": "Freeflow",
27
27
  "shortDescription": "Feedback-based control for coding agents.",
28
- "longDescription": "Freeflow gives coding agents an Interaction Contract, evidence-driven Workflow, focused methods, and durable task memory across conversation, workflow, and strict-workflow modes.",
28
+ "longDescription": "Freeflow gives coding agents an Interaction Contract, adaptive Workflow, focused methods, and durable task memory.",
29
29
  "developerName": "Hassan Mohiddin",
30
30
  "category": "Coding",
31
31
  "capabilities": ["Interactive", "Read", "Write"],
32
32
  "defaultPrompt": [
33
- "Use Freeflow workflow mode for this task.",
34
- "Keep this in conversation mode.",
35
- "Use strict-workflow for this risky change."
33
+ "Use Freeflow's adaptive Workflow for this task.",
34
+ "Respect the Interaction Contract and ask before going beyond the requested scope."
36
35
  ],
37
36
  "websiteURL": "https://github.com/hassan-mohiddin/freeflow",
38
37
  "privacyPolicyURL": "https://github.com/hassan-mohiddin/freeflow/blob/main/README.md",
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **A feedback-based control system for coding agents.**
4
4
 
5
- Freeflow helps coding agents do consequential work without turning every task into a rigid ceremony. It gives the agent a clear interaction contract, evidence-driven Workflow, focused methods, durable task memory, and controlled delivery boundaries.
5
+ Freeflow helps coding agents do consequential work without turning every task into a rigid ceremony. It gives the agent a clear Interaction Contract, adaptive Workflow, focused methods, durable task memory, and controlled delivery boundaries.
6
6
 
7
7
  The host agent still owns tools, permissions, and execution. Freeflow helps it choose the right next action—and know when to stop, ask, verify, or hand work back.
8
8
 
@@ -15,7 +15,7 @@ Coding agents commonly fail at control boundaries:
15
15
  | A question or tentative idea becomes an edit. | The Interaction Contract answers first and waits for clear action authority. |
16
16
  | A prompt conflicts with tests, policy, or accepted behavior. | Decision Gate names the conflict before mutation. |
17
17
  | New evidence invalidates the plan. | Workflow routes from evidence and preserves unaffected work. |
18
- | Every task receives unnecessary ceremony. | Workflow enters at the narrowest useful owner. |
18
+ | Every task receives unnecessary ceremony. | Workflow enters at the narrowest useful owner and scales pressure to risk. |
19
19
  | A passing command becomes an unsupported completion claim. | Verify Work matches evidence to the exact claim and boundary. |
20
20
  | Compaction loses task state. | Track Work restores a Working Record and reconciles it with live state. |
21
21
  | Tool output consumes future context. | Context Virtualization can archive consumed evidence while preserving session history. |
@@ -26,7 +26,7 @@ Coding agents commonly fail at control boundaries:
26
26
  - [Host support](#host-support)
27
27
  - [Capabilities](#capabilities)
28
28
  - [Quick start](#quick-start)
29
- - [Modes and workflow](#modes-and-workflow)
29
+ - [Workflow](#workflow)
30
30
  - [System prompt architecture](#system-prompt-architecture)
31
31
  - [Evidence and limits](#evidence-and-limits)
32
32
  - [Commands](#commands)
@@ -41,21 +41,16 @@ Freeflow uses one active agent, one shared context, and nested feedback loops:
41
41
  Interaction Lifecycle
42
42
  └─ Workflow Feedback Loop
43
43
  ├─ establishes authority, owner, and slice
44
- └─ Cognitive Execution Loop — automatic control only
45
- ├─ Reasoning establishes the governing execution contract
46
- ├─ DELEGATE to Standard
47
- │ └─ Environment Interaction Loop
48
- │ ├─ select and bound the next action
49
- │ ├─ use Action Selection when uncertain or broad
50
- │ ├─ take the obvious fast path when mechanical
51
- │ ├─ execute and observe
52
- │ └─ repeat within the delegation contract
53
- ├─ RETURN evidence to Reasoning
54
- ├─ Reasoning self-reviews
55
- └─ close, delegate correction, or return to Workflow
44
+ └─ Cognitive Execution Routes — automatic control only
45
+ ├─ Reasoning chooses one route
46
+ │ ├─ YIELD → Standard leads ordinary work → YIELD HANDOFF → Reasoning
47
+ │ ├─ DELEGATE → open model-written boundary → Standard executes
48
+ │ │ └─ RETURN → Reasoning assesses; boundary remains open until CLOSE
49
+ │ └─ TASK ACT → Reasoning performs narrow direct OBSERVE or ACT_BOUNDED
50
+ └─ Action Selection guides uncertain environment interactions
56
51
  ```
57
52
 
58
- Under manual profile control, the Cognitive Execution Loop is not used; the held profile runs the ordinary unsplit Workflow. Cognitive Routing changes compute placement only. It never changes authority, ownership, mode, task scope, evidence requirements, or review independence.
53
+ Under automatic Cognitive Routing control, each new user interaction begins in Reasoning. Under manual control, the selected compute profile runs the ordinary unsplit Workflow. Cognitive Routing changes compute placement only. It never changes authority, ownership, task scope, evidence requirements, or review independence.
59
54
 
60
55
  The Workflow owner may be Discuss, Track Work, Execute Work, Verify Work, Review Work, Review Artifact, Diagnose Failure, or another focused method. These methods compose when their conditions apply; they are not a mandatory phase pipeline.
61
56
 
@@ -65,12 +60,12 @@ Freeflow is one package with different host boundaries:
65
60
 
66
61
  | Host | Freeflow support | Cognitive Routing |
67
62
  | --- | --- | --- |
68
- | Codex | Shared skills and lifecycle hook | Not available; Pi-only capabilities are not delivered |
69
- | Claude Code | Shared skills and lifecycle hook | Not available; Pi-only capabilities are not delivered |
70
- | Pi | Shared skills, Pi extension, and optional context capabilities | Configuration is inspectable but execution is disabled |
71
- | PiFlow | Freeflow package hosted by the separate PiFlow distribution | Available when host controls, Skills, and profiles are configured |
63
+ | Codex | Shared skills and lifecycle hook | Not available; Pi/PiFlow capabilities are not delivered |
64
+ | Claude Code | Shared skills and lifecycle hook | Not available; Pi/PiFlow capabilities are not delivered |
65
+ | Pi | Shared skills, Pi extension, optional context capabilities, and native host controls | Available when configured and the official model-state APIs are present |
66
+ | PiFlow | Freeflow package hosted by the separate PiFlow distribution | Available when configured |
72
67
 
73
- Freeflow owns workflow policy, prompt fragments, skills, capabilities, and the Pi extension. PiFlow owns host launch, package installation, session state, updates, and the model-state control required by Cognitive Routing.
68
+ Freeflow owns workflow policy, prompt fragments, skills, capabilities, and the Pi extension. Each host owns its launch, package installation, session state, updates, and native model-state control; PiFlow remains a supported host integration.
74
69
 
75
70
  ## Capabilities
76
71
 
@@ -78,20 +73,20 @@ Freeflow owns workflow policy, prompt fragments, skills, capabilities, and the P
78
73
 
79
74
  - **Workflow** coordinates authority, owner selection, evidence-driven re-entry, and Supported Exit.
80
75
  - **Action Selection** bounds uncertain or broad Environment Interactions while preserving the current owner.
81
- - **Track Work** maintains one Working Record when decisions, evidence, blockers, or the next action must survive context loss.
76
+ - **Track Work** maintains a Working Record when decisions, evidence, blockers, or the next action must survive context loss.
82
77
  - **Verify Work, Review Work, Review Artifact, and Diagnose Failure** separate factual support, judgment, artifact fitness, and unsupported causes.
83
78
 
84
79
  ### Optional host capabilities
85
80
 
86
- - **[Cognitive Routing](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/cognitive-routing.md)** places compute between Reasoning and Standard under automatic control. It is PiFlow-only and experimental.
81
+ - **[Cognitive Routing](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/cognitive-routing.md)** places compute between Reasoning and Standard under automatic control in Pi and PiFlow. It remains experimental.
87
82
  - **[Context Virtualization](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/context-virtualization.md)** classifies consumed tool evidence as Full, Retained, or Reference-only for future context while leaving canonical history unchanged.
88
83
  - **[Conversation History](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/conversation-history.md)** performs bounded retrieval of exact missing prior-conversation evidence from the current active branch.
89
84
 
90
- All three capabilities are Skills-gated and default-off or unavailable unless their configuration and host conditions are effective. None of them grants authority or replaces Workflow.
85
+ The three capabilities are individually gated and default-off or unavailable unless their configuration and host conditions are effective. None grants authority or replaces Workflow.
91
86
 
92
87
  ## Quick start
93
88
 
94
- For the complete host-specific setup, see [Getting Started](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/getting-started.md).
89
+ For complete host-specific setup, see [Getting Started](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/getting-started.md).
95
90
 
96
91
  ### Codex
97
92
 
@@ -123,6 +118,8 @@ Or:
123
118
  pi install git:github.com/hassan-mohiddin/freeflow
124
119
  ```
125
120
 
121
+ The full normal-Pi integration targets Pi 0.84.3 or newer; Pi 0.84.4 is the current Cognitive Routing test target.
122
+
126
123
  ### PiFlow
127
124
 
128
125
  Install PiFlow separately, then install Freeflow into it:
@@ -144,19 +141,13 @@ In the target repository, run:
144
141
  /setup-freeflow
145
142
  ```
146
143
 
147
- Setup creates `.freeflow/config.json`, the required shared activation boundary. `.freeflow/local.json` is an optional personal override and cannot activate Freeflow by itself.
148
-
149
- ## Modes and workflow
144
+ Setup creates `.freeflow/config.json`, the required shared activation boundary. Minimal activation is `{}`. `.freeflow/local.json` is an optional personal override and cannot activate Freeflow by itself.
150
145
 
151
- Freeflow has exactly three modes:
146
+ ## Workflow
152
147
 
153
- | Mode | Use for |
154
- | --- | --- |
155
- | `conversation` | Discussion, critique, explanation, and passive inspection |
156
- | `workflow` | Active evidence generation and normal consequential work |
157
- | `strict-workflow` | High-risk or hard-to-reverse work |
148
+ Freeflow always uses one adaptive Workflow. The Interaction Contract interprets the whole user turn; Workflow then chooses the narrowest owner and scales coordination to consequence, uncertainty, interaction, and reversibility.
158
149
 
159
- Mode changes do not authorize work. A direct request, still-valid approval, or accepted task contract establishes the authority envelope; mode, skill selection, usefulness, and new evidence do not widen it.
150
+ A question or tentative idea remains discussion until clear action authority exists. A direct request covers only its bounded outcome and entailed effects. Risk-sensitive work receives stronger decisions, evidence, verification, and checkpoints through the same Workflow rather than through a separate selectable process.
160
151
 
161
152
  Every bounded activity follows the same Feedback Loop:
162
153
 
@@ -171,13 +162,14 @@ orient to accepted intent, task memory, and live evidence
171
162
 
172
163
  ## System prompt architecture
173
164
 
174
- Freeflow’s model-facing surface has three layers:
165
+ Freeflow’s model-facing surface has four coordinated parts:
175
166
 
176
- 1. **Stable prompt fragments** under `runtime/prompts/` provide compact guidance and conditional capability cues.
177
- 2. **Runtime State** reports current mode, capability availability, and Cognitive Routing `Control`/`Profile` before every provider request.
178
- 3. **Discoverable skills and tools** provide complete methods and operations when effective gates apply.
167
+ 1. **Core guidance** in `runtime/prompts/core.md` contains identity, shared terms, loops, Workflow, Action Selection, and Supported Exit cues.
168
+ 2. **Interaction Contract** in `runtime/prompts/interaction-contract.md` remains a separate mandatory fragment so its behavior can be revised independently.
169
+ 3. **Runtime State** reports current capability availability and Cognitive Routing `Control`/`Profile` at session start, after context reconstruction or loss, and when displayed state changes; unchanged state remains in the current provider context.
170
+ 4. **Discoverable skills and tools** provide the 25 base methods and individually gated optional capability operations.
179
171
 
180
- One effective-state snapshot determines all three surfaces. The Interaction Contract is prompt-only. Skills gates Cognitive Routing, Context Virtualization, and Conversation History. Missing optional capability content is omitted and reported unavailable rather than fabricated.
172
+ The core guidance and Interaction Contract are always delivered together when Freeflow is enabled. Optional capability content is omitted and reported unavailable rather than fabricated. One effective-state snapshot determines prompt assembly, discovery, tools, and projection.
181
173
 
182
174
  Read the full [System Prompt Architecture](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/prompt-architecture.md) and [Workflow](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md) docs for the complete contract.
183
175
 
@@ -228,32 +220,24 @@ Contributor calls:
228
220
  /evaluate-skill
229
221
  ```
230
222
 
231
- Mode controls:
232
-
233
- ```text
234
- /freeflow mode conversation
235
- /freeflow mode workflow
236
- /freeflow mode strict-workflow
237
- /freeflow mode reset
238
- ```
239
-
240
- Pi settings and PiFlow-only Cognitive Routing controls:
223
+ Pi and PiFlow Cognitive Routing controls:
241
224
 
242
225
  ```text
243
226
  /freeflow
227
+ /freeflow settings
228
+ /freeflow settings session
229
+ /freeflow settings repo
244
230
  /freeflow profile standard
245
231
  /freeflow profile reasoning
246
232
  /freeflow profile auto
247
233
  ```
248
234
 
249
- Pi `/freeflow settings` edits personal overrides, `/freeflow settings session` manages temporary session overrides, and `/freeflow settings repo` edits shared repository settings. Profile changes require PiFlow and an idle host.
235
+ `/freeflow settings` edits personal overrides, `/freeflow settings session` manages temporary enablement and optional-context overrides, and `/freeflow settings repo` edits shared repository settings. Profile changes require an idle host with the required model-state APIs.
250
236
 
251
- In PiFlow, while the host is idle:
237
+ In Pi or PiFlow, while the host is idle:
252
238
 
253
239
  - `Ctrl+Shift+R` cycles the manual standard/reasoning hold.
254
- - `Ctrl+Shift+A` cycles the automatic standard/reasoning profile; from a manual hold, its first press returns to automatic control without forcing a profile transition.
255
-
256
- Normal Pi does not register these Cognitive Routing shortcuts.
240
+ - `Ctrl+Shift+A` sets automatic control; from a manual hold, it releases the hold and moves to Reasoning when necessary. Repeating it while already automatic is idempotent.
257
241
 
258
242
  ## Documentation and development
259
243