@hassangameryt/freeflow 0.6.0 → 0.7.1

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 (136) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +3 -2
  3. package/.codex-plugin/plugin.json +5 -6
  4. package/.cursor-plugin/plugin.json +25 -0
  5. package/README.md +66 -56
  6. package/capabilities/cognitive-routing/SKILL.md +288 -130
  7. package/com.github.copilot/hooks/hooks.json +11 -0
  8. package/command-surface.json +0 -24
  9. package/gemini-extension.json +5 -0
  10. package/hooks/adapters/claude-session-start.mjs +16 -0
  11. package/hooks/adapters/codex-session-start.mjs +16 -0
  12. package/hooks/adapters/copilot-session-start.mjs +13 -0
  13. package/hooks/adapters/cursor-session-start.mjs +13 -0
  14. package/hooks/adapters/gemini-session-start.mjs +15 -0
  15. package/hooks/claude/hooks.json +18 -0
  16. package/hooks/codex/hooks.json +18 -0
  17. package/hooks/cursor/hooks.json +9 -0
  18. package/hooks/freeflow-runtime-context.mjs +3 -650
  19. package/hooks/hooks.json +4 -30
  20. package/hooks/shared/runtime-context.mjs +210 -0
  21. package/hooks/tests/check-host-adapters.test.mjs +82 -0
  22. package/hooks/tests/check-runtime-context-hook.sh +140 -320
  23. package/package.json +20 -4
  24. package/pi-extension/dist/cognitive-routing/commands.js +3 -3
  25. package/pi-extension/dist/cognitive-routing/config.js +16 -20
  26. package/pi-extension/dist/cognitive-routing/controller.js +478 -48
  27. package/pi-extension/dist/cognitive-routing/history.js +12 -0
  28. package/pi-extension/dist/cognitive-routing/host.js +74 -12
  29. package/pi-extension/dist/cognitive-routing/pi-routing-session.js +414 -0
  30. package/pi-extension/dist/cognitive-routing/pi-session-control.js +320 -0
  31. package/pi-extension/dist/cognitive-routing/tool.js +1 -0
  32. package/pi-extension/dist/cognitive-routing/types.js +1 -1
  33. package/pi-extension/dist/index.js +236 -219
  34. package/pi-extension/dist/runtime/runtime-context.js +126 -286
  35. package/pi-extension/dist/settings/settings-ui.js +52 -336
  36. package/pi-extension/src/cognitive-routing/commands.ts +15 -5
  37. package/pi-extension/src/cognitive-routing/config.ts +16 -20
  38. package/pi-extension/src/cognitive-routing/controller.ts +561 -51
  39. package/pi-extension/src/cognitive-routing/history.ts +12 -0
  40. package/pi-extension/src/cognitive-routing/host.ts +110 -16
  41. package/pi-extension/src/cognitive-routing/pi-routing-session.ts +538 -0
  42. package/pi-extension/src/cognitive-routing/pi-session-control.ts +444 -0
  43. package/pi-extension/src/cognitive-routing/tool.ts +1 -0
  44. package/pi-extension/src/cognitive-routing/types.ts +1 -1
  45. package/pi-extension/src/index.ts +249 -239
  46. package/pi-extension/src/runtime/runtime-context.ts +129 -305
  47. package/pi-extension/src/settings/settings-ui.ts +53 -371
  48. package/pi-extension/tests/cognitive-routing/commands.test.js +1 -1
  49. package/pi-extension/tests/cognitive-routing/controller.test.js +69 -40
  50. package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +128 -57
  51. package/pi-extension/tests/cognitive-routing/pi-normal-lifecycle.test.js +434 -0
  52. package/pi-extension/tests/cognitive-routing/pi-session-control.test.js +174 -0
  53. package/pi-extension/tests/cognitive-routing/pi-session-history.test.js +91 -0
  54. package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +47 -4
  55. package/pi-extension/tests/integration/mode-free-core.test.js +218 -0
  56. package/pi-extension/tests/integration/pi-extension.test.js +430 -2478
  57. package/pi-extension/tests/integration/prompt-architecture.test.js +124 -79
  58. package/pi-extension/tests/integration/unaffected-regressions.test.js +411 -0
  59. package/plugin.json +33 -0
  60. package/runtime/prompts/cognitive-routing.md +5 -4
  61. package/runtime/prompts/conversation-history.md +1 -1
  62. package/runtime/prompts/core.md +77 -6
  63. package/runtime/prompts/interaction-contract.md +6 -2
  64. package/skills/action-selection/SKILL.md +93 -44
  65. package/skills/action-selection/references/trajectory-stalls.md +71 -0
  66. package/skills/bypass/SKILL.md +109 -39
  67. package/skills/commit-work/SKILL.md +94 -55
  68. package/skills/commit-work/references/git-state-edges.md +94 -0
  69. package/skills/commit-work/references/simple-push.md +92 -0
  70. package/skills/commit-work/references/staging-decisions.md +79 -46
  71. package/skills/decision-gate/SKILL.md +80 -22
  72. package/skills/design-for-depth/SKILL.md +208 -43
  73. package/skills/design-for-depth/references/design-pressure-signals.md +108 -240
  74. package/skills/design-for-depth/references/interface-design-loop.md +77 -97
  75. package/skills/design-for-depth/references/module-and-dependency-design.md +147 -0
  76. package/skills/design-for-depth/references/software-design-philosophy.md +127 -173
  77. package/skills/design-for-depth/references/state-and-failure-boundaries.md +136 -0
  78. package/skills/diagnose-failure/SKILL.md +198 -52
  79. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +19 -5
  80. package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +13 -5
  81. package/skills/discuss/SKILL.md +118 -76
  82. package/skills/discuss/references/discussion-continuity.md +84 -32
  83. package/skills/evaluate-skill/SKILL.md +166 -52
  84. package/skills/evaluate-skill/references/evaluation-definition-schema.md +2 -2
  85. package/skills/evaluate-skill/references/evaluation-design.md +56 -30
  86. package/skills/evaluate-skill/references/execution-and-evidence.md +1 -1
  87. package/skills/evaluate-skill/references/review-and-revision.md +62 -21
  88. package/skills/execute-work/SKILL.md +98 -59
  89. package/skills/execute-work/references/code-practices.md +4 -4
  90. package/skills/execute-work/references/execute-work-edges.md +42 -22
  91. package/skills/review-artifact/SKILL.md +132 -71
  92. package/skills/review-artifact/references/adjudicate-artifact-review.md +101 -0
  93. package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +52 -41
  94. package/skills/review-work/SKILL.md +115 -72
  95. package/skills/review-work/references/adjudicate-work-review.md +97 -0
  96. package/skills/review-work/references/independent-work-reviewer-contract.md +40 -35
  97. package/skills/review-work/references/security-risk-lens.md +17 -15
  98. package/skills/setup-freeflow/SKILL.md +14 -17
  99. package/skills/setup-freeflow/references/activation-contract.md +24 -30
  100. package/skills/setup-freeflow/references/host-setup.md +6 -7
  101. package/skills/simplify-code/SKILL.md +97 -39
  102. package/skills/simplify-code/references/simplification-patterns.md +1 -1
  103. package/skills/tdd/SKILL.md +108 -41
  104. package/skills/tdd/references/test-design.md +1 -1
  105. package/skills/track-work/SKILL.md +133 -300
  106. package/skills/track-work/references/working-record-format.md +515 -0
  107. package/skills/track-work/scripts/lib/document.mjs +713 -0
  108. package/skills/track-work/scripts/lib/format.mjs +166 -0
  109. package/skills/track-work/scripts/lib/store.mjs +233 -0
  110. package/skills/track-work/scripts/lib/transitions.mjs +790 -0
  111. package/skills/track-work/scripts/lib/views.mjs +27 -430
  112. package/skills/track-work/scripts/working-record.mjs +292 -98
  113. package/skills/verify-work/SKILL.md +46 -20
  114. package/skills/verify-work/references/browser-runtime-evidence.md +1 -1
  115. package/skills/verify-work/references/integration-evidence.md +1 -7
  116. package/skills/verify-work/references/performance-evidence.md +1 -1
  117. package/skills/workflow/SKILL.md +110 -80
  118. package/skills/workflow/references/domain-skill-composition.md +24 -18
  119. package/skills/write-skill/SKILL.md +218 -62
  120. package/skills/write-skill/references/activation-boundaries.md +63 -21
  121. package/skills/write-skill/references/agent-first-instructions.md +61 -27
  122. package/skills/write-skill/references/progressive-disclosure.md +91 -41
  123. package/skills/write-skill/references/skill-dependency-graphs.md +190 -0
  124. package/runtime/prompts/skills.md +0 -65
  125. package/skills/mode-contract/SKILL.md +0 -104
  126. package/skills/track-work/scripts/lib/codec.mjs +0 -570
  127. package/skills/track-work/scripts/lib/commands.mjs +0 -568
  128. package/skills/track-work/scripts/lib/contract.mjs +0 -303
  129. package/skills/track-work/scripts/lib/model.mjs +0 -506
  130. package/skills/track-work/scripts/lib/operations.mjs +0 -965
  131. package/skills/track-work/scripts/lib/record-store.mjs +0 -264
  132. package/skills/track-work/scripts/lib/result.mjs +0 -37
  133. package/skills/track-work/scripts/lib/rewrites.mjs +0 -740
  134. package/skills/track-work/scripts/lib/schema.mjs +0 -277
  135. package/skills/track-work/scripts/lib/source-inventory.mjs +0 -162
  136. package/skills/track-work/scripts/lib/workspace.mjs +0 -134
@@ -19,9 +19,9 @@ Read [the activation contract](references/activation-contract.md) before changin
19
19
 
20
20
  Classify the current state before editing:
21
21
 
22
- - **Unconfigured:** repository config is missing or invalid, so no Freeflow mode is effective. An explicit setup request may create minimal config when it is missing. Replacing or reinterpreting invalid config still requires the specific authority described below.
23
- - **Configured but ineffective:** valid repository activation exists, but Freeflow is disabled, Skills are dormant, or invalid local config blocks runtime. No mode is effective. An explicit request governs the selected enablement, configuration, or repair; any dormant resolved mode does not.
24
- - **Effective:** Freeflow Skills report an effective mode. Obey it. Conversation remains read-only; Workflow or Strict Workflow allows agent-performed mutation only for the separately requested setup or repair.
22
+ - **Unconfigured:** repository config is missing or invalid, so Freeflow is not effective. An explicit setup request may create minimal config when it is missing. Replacing or reinterpreting invalid config still requires the specific authority described below.
23
+ - **Configured but ineffective:** valid repository activation exists, but Freeflow is disabled or an invalid local config blocks runtime. No Freeflow guidance is effective. An explicit request governs the selected enablement, configuration, or repair.
24
+ - **Effective:** Freeflow core guidance, the Interaction Contract, and base skills are effective. An explicit setup or repair request may be carried out within its authority; optional capability behavior remains independently gated.
25
25
 
26
26
  User-operated host settings are direct user actions, not agent-performed config edits. Prefer them when available and do not claim their state changed until the host reports it.
27
27
 
@@ -34,21 +34,19 @@ Before editing:
34
34
  3. inspect repo instructions only when a conflict would change setup behavior;
35
35
  4. identify the host and available delivery evidence when runtime status matters.
36
36
 
37
- A valid repository config establishes activation. A missing local config inherits shared values. An invalid existing local config blocks effective Freeflow instead of falling back silently.
37
+ A valid repository config establishes activation. A missing local config inherits repository settings. An invalid existing local config blocks effective Freeflow instead of falling back silently.
38
38
 
39
39
  If setup is already valid and no change was requested, preserve it and report the effective sources. Do not rewrite config merely to normalize formatting or materialize defaults.
40
40
 
41
41
  ## Configure Shared Activation
42
42
 
43
- For a new default setup, write:
43
+ For a new setup, write the minimal activation boundary:
44
44
 
45
45
  ```json
46
- {
47
- "defaultMode": "workflow"
48
- }
46
+ {}
49
47
  ```
50
48
 
51
- During first activation, an explicitly requested `conversation` or `strict-workflow` mode becomes the shared repository default. Preserve valid existing settings and add no unrequested keys or empty sections.
49
+ Add `enabled: false` only when the user explicitly requests Freeflow to be disabled. Add optional capability configuration only when the user explicitly requests it.
52
50
 
53
51
  If repository config is invalid or conflicts with accepted source truth, use [Decision Gate](../decision-gate/SKILL.md) before replacing or reinterpreting it.
54
52
 
@@ -56,7 +54,7 @@ Do not create or append Freeflow instructions in `AGENTS.md`, `CLAUDE.md`, `.cla
56
54
 
57
55
  ## Add Personal Overrides Only When Requested
58
56
 
59
- Use `.freeflow/local.json` for an explicitly selected per-checkout override of `enabled`, `interactionContract`, `skills.enabled`, or `defaultMode`. Omitted values inherit from repository config and built-in defaults.
57
+ Use `.freeflow/local.json` for an explicitly selected per-checkout override of `enabled`, `contextVirtualization`, or `conversationHistory`. Omitted values inherit from repository config and built-in defaults. Configure optional Cognitive Routing values only through its explicit settings surface.
60
58
 
61
59
  In Pi, `/freeflow settings` edits personal overrides and `/freeflow settings repo` edits shared settings. Prefer those controls when available.
62
60
 
@@ -68,19 +66,18 @@ If local config is invalid, report that it blocks effective runtime. Repair or r
68
66
 
69
67
  After successful verification, apply newly effective context directly for the remainder of the setup turn:
70
68
 
71
- - read the [Interaction Contract](../../runtime/prompts/interaction-contract.md) when it is effective;
72
- - read [Workflow](../workflow/SKILL.md) and [Mode Contract](../mode-contract/SKILL.md) when Skills are effective.
69
+ - read the [Interaction Contract](../../runtime/prompts/interaction-contract.md);
70
+ - read [Workflow](../workflow/SKILL.md) when Freeflow is effective.
73
71
 
74
- This direct read establishes same-turn guidance; it does not prove that a lifecycle adapter ran. After first activation, use [host setup](references/host-setup.md) to name the exact host-native lifecycle action for automatic delivery and resource refresh, state what applies before that boundary, and keep delivery confirmed, unavailable, or unconfirmed from evidence.
72
+ These direct reads establish same-turn guidance; they do not prove that a lifecycle adapter ran. After first activation, use [host setup](references/host-setup.md) to name the exact host-native lifecycle action for automatic delivery and resource refresh, state what applies before that boundary, and keep delivery confirmed, unavailable, or unconfirmed from evidence.
75
73
 
76
74
  ## Verify And Report
77
75
 
78
76
  Verify:
79
77
 
80
- - repository config parses and contains a valid `defaultMode`;
78
+ - repository config parses and is the required activation boundary;
81
79
  - local config is missing or valid, personal, untracked, and ignored when applicable;
82
- - effective `enabled`, Interaction Contract, Skills, and configured default values have the expected sources;
83
- - Skills-disabled mode remains resolved but dormant;
80
+ - effective `enabled`, core guidance, and optional capability values have the expected sources;
84
81
  - no repo-owned host instructions or unrelated files changed.
85
82
 
86
83
  After verification supports a setup result, silently self-review the final observed or changed state before accepting, reusing, or reporting it. Correct clear local issues within the existing setup authority and re-verify the affected boundary; stop on ambiguity, route change, or an out-of-envelope correction.
@@ -89,6 +86,6 @@ Report separately:
89
86
 
90
87
  1. shared repository activation;
91
88
  2. personal override state and effective sources;
92
- 3. effective Interaction Contract, Skills, and mode state;
89
+ 3. effective Freeflow core guidance, Interaction Contract, base skills, and optional capability state;
93
90
  4. same-turn direct context reads;
94
91
  5. automatic runtime delivery as **confirmed**, **unavailable**, or **unconfirmed**.
@@ -7,19 +7,18 @@ Freeflow uses layered checkout configuration. Shared repository activation, pers
7
7
  `.freeflow/config.json` is the required shared activation boundary. Minimal setup is:
8
8
 
9
9
  ```json
10
- {
11
- "defaultMode": "workflow"
12
- }
10
+ {}
13
11
  ```
14
12
 
15
- Supported defaults are `conversation`, `workflow`, and `strict-workflow`. Missing core keys use built-in defaults:
13
+ Missing core keys use built-in defaults:
16
14
 
17
15
  - `enabled: true`
18
- - `interactionContract: true`
19
- - `skills.enabled: true`
20
- - `defaultMode: workflow`
16
+ - `contextVirtualization: false`
17
+ - `conversationHistory: false`
18
+
19
+ Optional capability configuration is explicit and remains independently gated. The legacy `defaultMode`, `interactionContract`, and `skills` keys are unsupported and make the configuration invalid.
21
20
 
22
- Do not add current mode, task state, phase, file inventories, plans, version metadata, activation paths, empty optional sections, host instruction copies, or generated workflow text.
21
+ Do not add task state, phase, file inventories, plans, version metadata, activation paths, empty optional sections, host instruction copies, or generated workflow text.
23
22
 
24
23
  Missing or invalid repository config means repository activation is absent. A valid config with effective `enabled: false` remains configured but inactive.
25
24
 
@@ -31,12 +30,9 @@ It may override these core values:
31
30
 
32
31
  ```json
33
32
  {
34
- "enabled": true,
35
- "interactionContract": true,
36
- "skills": {
37
- "enabled": true
38
- },
39
- "defaultMode": "strict-workflow"
33
+ "enabled": false,
34
+ "contextVirtualization": true,
35
+ "conversationHistory": true
40
36
  }
41
37
  ```
42
38
 
@@ -48,29 +44,28 @@ A missing local file means full inheritance. An invalid existing local file bloc
48
44
 
49
45
  ## Effective Core State
50
46
 
51
- Resolve core values in this order:
47
+ Resolve remaining configurable values in this order:
52
48
 
53
49
  ```text
54
50
  host session override -> personal override -> repository value -> built-in default
55
51
  ```
56
52
 
57
- Host session overrides are host state, not config, and cannot bypass missing or invalid repository activation. Pi may temporarily override Freeflow master enablement, Interaction Contract, Skills, and mode. Claude and Codex support mode-only overrides in plugin-owned session state.
53
+ Host session overrides are host state, not config, and cannot bypass missing or invalid repository activation. Pi may temporarily override Freeflow enablement and the remaining optional context capabilities. Cognitive Routing has its own host-managed session control.
58
54
 
59
55
  Effective Freeflow requires:
60
56
 
61
57
  1. valid repository config;
62
58
  2. missing or valid local config;
63
- 3. session-resolved `enabled: true`.
59
+ 3. session-resolved `enabled: true`;
60
+ 4. the mandatory `core.md` and `interaction-contract.md` prompt files.
64
61
 
65
- The Interaction Contract and Skills are independent resolved switches. When Skills are disabled, the configured mode remains visible as resolved state but no Freeflow mode is effective.
62
+ The core prompt and Interaction Contract are always delivered together when Freeflow is enabled. Base Freeflow skills are exposed with that core surface. Context Virtualization, Conversation History, and Cognitive Routing remain independently gated capabilities.
66
63
 
67
64
  ## Mutation Authority By State
68
65
 
69
- Mode constrains agent-performed setup only when a mode is effective:
70
-
71
- - **Unconfigured:** missing or invalid repository config means no effective mode. An explicit setup request may create missing minimal activation; replacing invalid config requires specific authorization and source-conflict resolution.
72
- - **Configured but ineffective:** top-level disablement, dormant Skills, or invalid local config leaves no effective mode. An explicit request governs the selected enablement, configuration, or repair; any reported resolved mode remains dormant state only.
73
- - **Effective:** obey the reported mode. Conversation is read-only. Workflow and Strict Workflow allow only separately authorized setup or repair.
66
+ - **Unconfigured:** missing or invalid repository config means Freeflow is not effective. An explicit setup request may create missing minimal activation; replacing invalid config requires specific authorization and source-conflict resolution.
67
+ - **Configured but ineffective:** top-level disablement or invalid local config prevents effective Freeflow. An explicit request governs the selected enablement, configuration, or repair.
68
+ - **Effective:** obey the Interaction Contract and core Workflow guidance. Optional capability behavior remains subject to its own effective state.
74
69
 
75
70
  A user operating native host settings changes host-managed state directly. That action is distinct from an agent editing `.freeflow/config.json` or `.freeflow/local.json`; verify the resulting source and effective state afterward.
76
71
 
@@ -78,15 +73,14 @@ A user operating native host settings changes host-managed state directly. That
78
73
 
79
74
  Configuration does not prove runtime delivery.
80
75
 
81
- When effective, host adapters may deliver:
82
-
83
- - `runtime/prompts/interaction-contract.md` when the Interaction Contract switch is enabled;
84
- - one full `skills/workflow/SKILL.md` bootstrap when Skills are enabled;
85
- - compact active or dormant mode state.
76
+ When effective, host adapters deliver:
86
77
 
87
- Pi may additionally expose explicitly enabled Pi capability skills and tools through its extension. Codex and Claude `SessionStart` hooks compose static fragments from `runtime/prompts/` and mode state; their `UserPromptSubmit` hook delivers only an explicit session-mode change or failure delta.
78
+ - `runtime/prompts/core.md`;
79
+ - `runtime/prompts/interaction-contract.md`;
80
+ - the base Freeflow skill surface;
81
+ - compact current capability state.
88
82
 
89
- The full Mode Contract and other workflow skills remain on demand. Adapters load context only; they do not enforce policy, block tools, grant permissions, or replace repo instructions.
83
+ Pi may additionally expose explicitly enabled Pi capability skills and tools. Codex and Claude `SessionStart` hooks compose the mandatory core fragments. Adapters load context only; they do not enforce policy, block tools, grant permissions, or replace repo instructions.
90
84
 
91
85
  A setup report classifies automatic delivery as:
92
86
 
@@ -28,26 +28,25 @@ Pi provides these settings scopes:
28
28
 
29
29
  ```text
30
30
  /freeflow settings personal overrides
31
- /freeflow settings session temporary session overrides
31
+ /freeflow settings session temporary enablement and optional-context overrides
32
32
  /freeflow settings repo shared repository settings
33
- /freeflow mode direct temporary session mode
34
33
  ```
35
34
 
36
- Session settings can temporarily inherit, enable, or disable Freeflow, Interaction Contract, and Skills, and can override mode. One reset action clears all four overrides. They persist in the active Pi session branch JSONL, never write `.freeflow/config.json` or `.freeflow/local.json`, and cannot bypass missing or invalid repository activation. Master or Skills changes reload Pi resources when supported.
35
+ Session settings can temporarily inherit, enable, or disable Freeflow, Context Virtualization, and Conversation History. One reset action clears those remaining session overrides. They persist in the active Pi session branch JSONL, never write `.freeflow/config.json` or `.freeflow/local.json`, and cannot bypass missing or invalid repository activation. Master changes reload Pi resources when supported.
37
36
 
38
37
  Personal settings use omission to inherit. The settings path refuses to overwrite invalid or tracked local config and establishes local Git exclusion when needed. These are user-operated host controls; they update state before the next model turn. Agent-performed file edits still follow Setup Freeflow's mutation-authority rules.
39
38
 
40
- When effective, Pi's `before_agent_start` path preserves the existing system prompt and composes the gated static fragments from `runtime/prompts/`. Runtime State is appended to every provider request; Workflow, Action Selection, and capability bodies remain discoverable rather than hidden persistent messages. Interaction Contract may be independent from Skills; Cognitive Routing, Context Virtualization, and Conversation History require Skills.
39
+ When effective, Pi's `before_agent_start` path preserves the existing system prompt and composes the mandatory `core.md` and `interaction-contract.md` fragments plus effective optional capability prompts. Runtime State is refreshed at session start, after context reconstruction or loss, and when displayed state changes; unchanged state remains in the provider context. Base skill bodies and capability bodies remain discoverable rather than hidden persistent messages. Cognitive Routing, Context Virtualization, and Conversation History are independently gated.
41
40
 
42
- A config written during setup is visible to the available Pi adapter on the next agent turn. After first activation, tell the user to run `/reload` so Pi refreshes skills and resources fully. Without reload, the adapter can load core runtime context on the next agent turn, but resource discovery waits for reload. A session-mode command applies before the next model turn and does not require reload. For the remainder of the setup turn, read newly effective context directly after verification instead of claiming that another `before_agent_start` invocation already occurred.
41
+ A config written during setup is visible to the available Pi adapter on the next agent turn. After first activation, tell the user to run `/reload` so Pi refreshes skills and resources fully. Without reload, the adapter can load core runtime context on the next agent turn, but resource discovery waits for reload. For the remainder of the setup turn, read newly effective context directly after verification instead of claiming that another `before_agent_start` invocation already occurred.
43
42
 
44
43
  Confirm automatic delivery through current extension status or runtime evidence when available.
45
44
 
46
45
  ## Codex And Claude
47
46
 
48
- The packaged runtime hook reads the same repository and local layers plus plugin-owned session mode state. At supported session start, resume, clear, and compact boundaries, `SessionStart` restores the complete enabled context. On submitted prompts, `UserPromptSubmit` changes mode only for an explicit native or conservative natural-language session control and otherwise emits nothing.
47
+ The packaged runtime hook reads the same repository and local layers. At supported `SessionStart` boundaries—startup, resume, clear, and compact—it restores the complete enabled core context. It does not process submitted prompts or persist session controls.
49
48
 
50
- When top-level Freeflow is effective, the hook loads the applicable static fragments from `runtime/prompts/` and reports configured, session, resolved, and effective mode state without treating a configured default as the current session mode. It does not inject a full Workflow bootstrap.
49
+ When top-level Freeflow is effective, the hook loads `runtime/prompts/core.md` and `runtime/prompts/interaction-contract.md` and emits a compact active Runtime State. It does not inject a full Workflow body or inspect Pi-only capabilities.
51
50
 
52
51
  After first-time setup, tell the user to trigger the least disruptive supported host-native lifecycle boundary: resume, clear, compact, or a new session/startup as available. Name the exact control supported by the current host; do not prescribe Pi's `/reload`. Until that boundary runs, use same-turn direct reads without claiming automatic delivery.
53
52
 
@@ -1,80 +1,138 @@
1
1
  ---
2
2
  name: simplify-code
3
- description: Use when simplifying working code without changing behavior, including removing duplication, indirection, dead abstractions, or confusing control flow.
3
+ description: Use when working code should become easier to understand or change without altering accepted behavior, including removing duplication, indirection, dead abstractions, or confusing control flow.
4
4
  ---
5
5
 
6
6
  # Simplify Code
7
7
 
8
- Reduce the concepts a reader must hold while preserving accepted behavior.
8
+ Reduce the concepts and coordination a reader must hold while preserving accepted behavior.
9
9
 
10
- Fewer lines, files, functions, or abstractions are not automatically simpler. Prefer the shape that makes behavior, ownership, and failure paths easier to understand and change.
10
+ Fewer lines, files, functions, or abstractions are not automatically simpler. Prefer the shape that makes behavior, ownership, and failure paths easier to understand, test, and change.
11
11
 
12
- ## Establish The Boundary
12
+ Simplify Code applies one behavior-preserving transformation. It does not define behavior, authorize effects, redesign ownership silently, select or close a Slice, or turn nearby cleanup into accepted work.
13
13
 
14
- Before editing:
14
+ A **simplification action** removes one named source of complexity and produces one assessable before-and-after result. It may contain several mechanical edits and focused checks.
15
15
 
16
- - understand the affected code, callers, tests, comments, and repository conventions;
17
- - establish the smallest verification baseline that protects observable behavior and error semantics;
18
- - understand why the current structure exists, including compatibility, performance, platform, history, and failure constraints;
19
- - define one narrow simplification outcome.
16
+ ## Enter With A Protected Boundary
20
17
 
21
- Use this skill only when behavior should remain unchanged. If expected behavior is unclear or needs to change, return that evidence to [Workflow](../workflow/SKILL.md). If the interface or ownership is structurally wrong, use [Design for Depth](../design-for-depth/SKILL.md). If no reliable behavior loop exists, use [TDD](../tdd/SKILL.md) or [Diagnose Failure](../diagnose-failure/SKILL.md) first.
18
+ Before editing, establish:
22
19
 
23
- Before changing code, read [Code Practices](../execute-work/references/code-practices.md). Before choosing a transformation or deciding whether deletion really reduces complexity, read [Simplification Patterns](references/simplification-patterns.md).
20
+ - the accepted behavior that must remain unchanged;
21
+ - the callers and failure semantics capable of detecting drift;
22
+ - the smallest reliable behavior baseline;
23
+ - the named complexity or coordination to remove;
24
+ - why the current structure exists, including compatibility, performance, platform, migration, and recovery constraints.
24
25
 
25
- ## Classify The Opportunity
26
+ If behavior is unclear or should change, return to [Workflow](../workflow/SKILL.md).
26
27
 
27
- - **Local expression:** names, guards, control flow, duplication, or unnecessary temporary state.
28
- - **Pass-through indirection:** wrapper, adapter, helper, or layer hides no useful decision.
29
- - **Accidental abstraction:** generalized machinery has no accepted variation or decision-hiding value.
28
+ If no reliable behavior check protects the accepted boundary, use [TDD](../tdd/SKILL.md) to establish characterization evidence before simplification. When failure or current behavior remains unexplained, use [Diagnose Failure](../diagnose-failure/SKILL.md).
29
+
30
+ When the intended result requires changing interfaces, ownership, public state, or failure behavior, return the structural pressure to Workflow with [Design for Depth](../design-for-depth/SKILL.md) as a lens. Do not disguise redesign as cleanup.
31
+
32
+ Before selecting or materially changing the transformation, read [Simplification Patterns](references/simplification-patterns.md).
33
+
34
+ Before changing code, read [Code Practices](../execute-work/references/code-practices.md).
35
+
36
+ ## Choose One Simplification
37
+
38
+ Classify the named complexity:
39
+
40
+ - **Local expression:** confusing names, guards, branching, duplication, or temporary state.
41
+ - **Pass-through indirection:** a wrapper, helper, adapter, or layer hides no useful decision.
42
+ - **Accidental abstraction:** generalized machinery has no accepted variation or information-hiding value.
30
43
  - **Scattered concept:** one behavior or policy can move toward one owner without changing its contract.
31
44
  - **Dead path:** evidence shows code is unused, unreachable, superseded, or impossible under current invariants.
32
- - **Structural pressure:** simplification requires changing interfaces, ownership, state, or architecture; return it to Workflow rather than presenting it as cleanup.
45
+ - **Structural pressure:** simplification requires changing interfaces, ownership, state, or architecture; return it rather than editing.
46
+
47
+ Select the smallest coherent transformation that removes the named complexity while leaving observable and failure behavior intact.
33
48
 
34
- ## Simplify In Bounded Steps
49
+ Do not invoke Simplify Code for immediate local cleanup already contained in one TDD behavior loop. Use it when complexity reduction is itself the accepted result.
35
50
 
36
- For each step:
51
+ ## Simplify As One Coherent Action
37
52
 
38
- 1. name the complexity being removed;
39
- 2. make one behavior-preserving change;
53
+ For the selected transformation:
54
+
55
+ 1. name the concepts, branches, indirection, or coordination being removed;
56
+ 2. make the complete behavior-preserving change;
40
57
  3. run the focused behavior and failure checks;
41
- 4. inspect whether concepts, coordination, and change surface decreased;
42
- 5. keep or revert the step from evidence.
58
+ 4. inspect the real caller path;
59
+ 5. compare conceptual and coordination cost before and after;
60
+ 6. keep or revert the action from evidence.
61
+
62
+ Several edits may belong to one transformation. Do not create a new action merely because the file, tool, or syntax changes.
43
63
 
44
- Keep feature work, bug fixes, edge-case handling, public behavior changes, and broad modernization outside the simplification slice. Report adjacent opportunities rather than absorbing them.
64
+ Keep feature work, bug fixes, edge-case behavior, public contract changes, broad modernization, and unrelated cleanup outside the simplification boundary.
45
65
 
46
- Follow project conventions rather than personal style. Preserve relevant inputs, outputs, side effects, ordering, errors, timing, permissions, compatibility, and resource behavior.
66
+ Preserve relevant:
47
67
 
48
- Preserve comments that explain non-obvious rationale, constraints, invariants, or workarounds. Update or remove comments that became stale. Do not add comments that merely narrate the simplified code.
68
+ - inputs and outputs;
69
+ - side effects and ordering;
70
+ - errors and recovery;
71
+ - timing and resource behavior;
72
+ - permissions and compatibility;
73
+ - failure units and externally visible state.
74
+
75
+ Follow repository conventions rather than personal style.
49
76
 
50
77
  ## Treat Tests As Evidence
51
78
 
52
79
  Do not rewrite valid behavior tests merely to make simplification pass.
53
80
 
54
- If an implementation-detail test fails while observable behavior appears unchanged, classify the conflict before editing it. Add characterization coverage when important accepted behavior lacks protection. Use expected values independent from the implementation.
81
+ If an implementation-detail test fails while caller-visible behavior appears unchanged, classify the conflict before editing:
82
+
83
+ - the implementation detail may be an accepted contract;
84
+ - the test may be stale or over-coupled;
85
+ - the simplification may have changed relevant behavior;
86
+ - the observing boundary may be insufficient.
87
+
88
+ A green suite is necessary but not sufficient. Inspect the resulting code, real caller path, and relevant failure behavior.
55
89
 
56
- A green suite is necessary but not sufficient. Inspect the resulting code and real caller path.
90
+ Add characterization coverage only for behavior that must remain stable. Do not fossilize unnecessary machinery merely because it existed before simplification.
57
91
 
58
92
  ## Delete Deliberately
59
93
 
60
- Understand the purpose and current consumers before deleting code.
94
+ Before deletion, establish the code’s purpose and current consumers through source, runtime registration, configuration, generated callers, tests, history, and compatibility obligations as relevant.
95
+
96
+ Removing an unnecessary layer should reduce coordination, not scatter its protocol into callers.
97
+
98
+ Do not delete compatibility, fallback, platform, migration, audit, or recovery behavior because it appears redundant. Use [Migration Work](../migration-work/SKILL.md) when removal carries consumer, state, or compatibility obligations.
61
99
 
62
- Removing a useful module should concentrate complexity behind a better interface, not scatter it into callers. Do not delete compatibility, fallback, platform, migration, audit, or recovery behavior because it appears redundant. Use [Migration Work](../migration-work/SKILL.md) when removal has consumer or compatibility obligations.
100
+ ## Determine Whether It Became Simpler
63
101
 
64
- ## Stop
102
+ Ask:
103
+
104
+ - Are there fewer concepts and branches?
105
+ - Is ownership clearer?
106
+ - Can the behavior be understood through fewer coordinated locations?
107
+ - Did failure semantics remain visible?
108
+ - Is the public interface smaller or unchanged?
109
+ - Did tests become more behavior-focused rather than more coupled?
110
+ - Would the next likely change require fewer coordinated edits?
111
+
112
+ If the answers are mostly no, complexity was relocated rather than reduced.
65
113
 
66
114
  Stop when:
67
115
 
68
- - preserving behavior cannot be demonstrated;
69
- - the simpler version changes public or failure semantics;
70
- - performance or resource tradeoffs are material and unmeasured;
71
- - each step exposes another interface, ownership, or edge-case problem;
72
- - the diff broadens beyond the accepted boundary;
73
- - source truth or user decisions conflict with deletion;
116
+ - unchanged behavior cannot be supported;
117
+ - public or failure semantics changed;
118
+ - performance or resource tradeoffs became material and unmeasured;
119
+ - each change exposes another interface, ownership, or edge-case problem;
120
+ - the action broadens beyond its accepted boundary;
121
+ - source truth or user decisions conflict with the transformation;
74
122
  - the result is shorter but harder to explain or test.
75
123
 
76
- Once evidence supports unchanged behavior and the accepted complexity has been removed, freeze the slice. Further cleanup, modernization, and possible improvements require another selected slice. Do not continue to satisfy a line-count target or reviewer taste.
124
+ ## Return The Method Result
125
+
126
+ Once evidence supports unchanged behavior and the named complexity has been removed, stop the simplification route and return to the current owner.
127
+
128
+ Return:
77
129
 
78
- ## Report
130
+ - the protected behavior boundary;
131
+ - concepts or coordination removed;
132
+ - before-and-after behavior evidence;
133
+ - resulting caller and failure-path shape;
134
+ - comments preserved, changed, or removed;
135
+ - intentionally retained complexity;
136
+ - what remains unverified.
79
137
 
80
- Report the boundary simplified, concepts or coordination removed, behavior evidence run before and after, relevant comments preserved or changed, intentionally retained complexity, and remaining unverified behavior. A successful simplification reduces reader and change coordination, not merely diff size.
138
+ Do not freeze or close the Slice. Do not continue into further cleanup, modernization, or possible improvements without another accepted bounded action.
@@ -1,6 +1,6 @@
1
1
  # Simplification Patterns
2
2
 
3
- Read this before choosing a simplification transformation or deciding whether deletion really reduces complexity. Use these patterns as candidates, not automatic rules. Preserve behavior and project conventions.
3
+ Read this before selecting or materially changing a simplification transformation. Use these patterns to compare candidates for the named complexity; they do not authorize another result or guarantee that fewer constructs are simpler. Preserve behavior and project conventions.
4
4
 
5
5
  ## Control Flow
6
6
 
@@ -1,76 +1,143 @@
1
1
  ---
2
2
  name: tdd
3
- description: Use when implementing or changing behavior test-first, fixing a bug with regression evidence, protecting behavior during refactoring, or when a test is difficult to write or starts shaping production design.
3
+ description: Use when implementing or changing settled behavior test-first, reproducing a bug through regression evidence, or protecting existing behavior before a refactor.
4
4
  ---
5
5
 
6
6
  # Test-Driven Development
7
7
 
8
- Selecting TDD creates no authority. Enter RED only when accepted behavior is settled and the current authority envelope covers the test and production effects.
8
+ Use one observed failing behavior check to guide the smallest complete implementation for one settled behavior.
9
9
 
10
- Use one observed failing behavior check to guide the smallest complete implementation for one accepted behavior.
10
+ TDD provides test-first behavior discipline. It does not define intended behavior, authorize test or production effects, select or close a Slice, or prove claims beyond its observing boundary.
11
11
 
12
- TDD is an execution method inside [Execute Work](../execute-work/SKILL.md). One vertical RED/GREEN/REFACTOR loop is a bounded action, not automatically a new Slice. Several accepted behavior loops may remain inside one coherent Slice; when durable task memory exists, [Track Work](../track-work/SKILL.md) preserves it as the Current Slice.
12
+ One behavior loop is one coherent method result. It may contain several reads, edits, commands, and focused checks. Finish and return one behavior before starting another.
13
13
 
14
- TDD does not define intended behavior. The accepted request, source truth, and user decisions establish what should happen.
14
+ ## Enter With Settled Behavior
15
15
 
16
- ## Use Or Exit Deliberately
16
+ Before RED, establish:
17
17
 
18
- Use TDD when test-first execution is selected for an accepted behavior change, bug correction with a supported cause, consequential logic, or refactor whose behavior needs protection.
18
+ - the accepted behavior and caller-visible result;
19
+ - relevant success and failure semantics;
20
+ - the boundary where the behavior must hold;
21
+ - authority covering both the check and production effects;
22
+ - the expected reason RED should fail.
19
23
 
20
- Do not force test-first work onto documentation, static content, mechanical formatting, generated output, or a disposable learning prototype whose result is not selected production behavior.
24
+ Return unsettled behavior, source conflicts, or user-owned choices to [Workflow](../workflow/SKILL.md). Do not encode a guess as a test.
21
25
 
22
- Stop before RED when expected behavior, failure semantics, or a public contract is unsettled. Return the missing direction to [Workflow](../workflow/SKILL.md) rather than encoding a guess as a test.
26
+ Use TDD for:
23
27
 
24
- When TDD applies, before designing or materially changing its behavior check, read [Test Design](references/test-design.md) to choose the test level, seam, oracle, doubles, rejected-state coverage, composed failures, time or concurrency boundary, and characterization strategy.
28
+ - accepted behavior changes;
29
+ - bug corrections with a supported cause or reliable regression loop;
30
+ - consequential logic whose contract benefits from executable evidence;
31
+ - characterization needed before a protected refactor.
32
+
33
+ Do not force TDD onto documentation, static content, formatting, generated output, or a disposable prototype that is not selected production behavior.
34
+
35
+ When a bug lacks a supported cause or reliable reproduction, use [Diagnose Failure](../diagnose-failure/SKILL.md) before selecting a production correction.
36
+
37
+ ## Design The Behavior Check
38
+
39
+ Before designing or materially changing the check, read [Test Design](references/test-design.md).
40
+
41
+ Name:
42
+
43
+ - the behavior concept;
44
+ - the stable caller-visible seam;
45
+ - an oracle independent from the implementation;
46
+ - the expected missing behavior RED should expose;
47
+ - the focused and affected boundaries that must be rerun after GREEN.
48
+
49
+ Use the smallest test environment that still exercises the real behavior and relevant failure path. Do not choose a smaller boundary that mocks away the claim or a larger one that adds noise without proving more.
50
+
51
+ Keep one behavior concept per loop. Several assertions are appropriate when they jointly describe one outcome.
25
52
 
26
53
  ## Follow The Behavior Loop
27
54
 
28
55
  ```text
29
- [Accepted behavior with settled expectation]
56
+ [Settled accepted behavior]
30
57
  -> [Choose stable seam and independent oracle]
31
58
  -> [RED: write and run the smallest behavior check]
32
- -> fails for expected missing behavior -> GREEN
33
- -> passes immediately -> inspect test, boundary, or existing behavior
34
- -> errors for unrelated reason -> correct harness or diagnose
35
- -> [GREEN: smallest complete implementation]
36
- -> [Verify focused behavior]
37
- -> [REFACTOR when useful, without behavior change]
38
- -> [Verify original path and affected boundary]
39
- -> [Route]
40
- -> another accepted behavior in this slice -> next TDD loop
41
- -> coherent extension -> Workflow -> when covered, record if needed -> next TDD loop
42
- -> unclear cause or structural pressure -> Workflow
43
- -> supported bounded action -> return to Execute Work
59
+ -> fails for the intended missing behavior -> GREEN
60
+ -> passes immediately -> inspect test, boundary, and existing behavior
61
+ -> errors or fails elsewhere -> correct the harness or diagnose
62
+ -> [GREEN: implement the smallest complete behavior]
63
+ -> [Run the focused behavior check]
64
+ -> [REFACTOR locally when useful]
65
+ -> [Rerun the original path and affected boundary]
66
+ -> [Return the method result and evidence]
44
67
  ```
45
68
 
46
- Do not write all tests first and all implementation later. Finish, verify, and route one accepted behavior before starting another.
69
+ Do not write all tests first and implementation later. Finish one behavior loop before another.
70
+
71
+ ## Observe Valid RED
72
+
73
+ Run RED before changing production behavior.
74
+
75
+ RED is valid only when:
76
+
77
+ - the check executes through the intended seam;
78
+ - its assertion represents accepted behavior;
79
+ - it fails because the behavior is missing or incorrect;
80
+ - unrelated syntax, setup, environment, or fixture failures do not explain it.
47
81
 
48
- ## Enforce The Test-First Evidence
82
+ If the check passes immediately, inspect whether:
49
83
 
50
- - Observe RED failing for the intended missing behavior before changing production code.
51
- - If RED passes immediately, inspect the test, observing boundary, and existing behavior; do not proceed to GREEN automatically.
52
- - If RED fails because of syntax, setup, environment, or unrelated behavior, correct the harness or diagnose before implementation.
53
- - Before changing production code for GREEN, read [Code Practices](../execute-work/references/code-practices.md). Then implement the smallest complete behavior.
54
- - Refactor only when it improves the result while the focused behavior check remains green.
55
- - Re-run the original path and smallest affected boundary before returning the supported action and evidence to Execute Work.
56
- - Do not claim TDD when the check was written after implementation or RED was never observed for the intended reason.
84
+ - the behavior already exists;
85
+ - the assertion is ineffective;
86
+ - the observing boundary is wrong;
87
+ - the test is reproducing a nearby path rather than the reported behavior.
57
88
 
58
- ## Keep Tests About Accepted Behavior
89
+ Do not proceed automatically to GREEN.
59
90
 
60
- Use the behavior check as the RED/GREEN contract for one accepted behavior. Do not change a valid test, copy the production implementation into its expected value, or add production hooks used only by tests merely to reach GREEN.
91
+ Correct a clear local harness defect. When the failure remains unexplained or repeated harness changes do not establish valid RED, return to Diagnose Failure.
61
92
 
62
- Add an edge-case check only when accepted behavior, observed failure, material safety, or a settled failure contract requires it. If behavior is undefined, return it to Workflow. When related cases keep adding states, flags, setup, or patches, stop the behavior-loop stream and diagnose the shared contract, cause, ownership, or interface.
93
+ ## Implement Complete GREEN
94
+
95
+ Before changing production code, read [Code Practices](../execute-work/references/code-practices.md).
96
+
97
+ Implement the smallest complete behavior that satisfies the accepted contract—not merely the visible assertion.
98
+
99
+ Do not:
100
+
101
+ - weaken or rewrite a valid test to obtain GREEN;
102
+ - calculate expected values through production logic;
103
+ - add public hooks, states, flags, or branches used only by tests;
104
+ - silently invent fallback, retry, recovery, or edge-case behavior;
105
+ - broaden implementation into another accepted behavior.
106
+
107
+ If GREEN requires an unsettled behavior, public contract, subsystem, or material scope expansion, return the evidence to Workflow.
108
+
109
+ ## Refactor Locally
110
+
111
+ Refactor only when it improves the behavior just implemented while its focused check remains green.
112
+
113
+ TDD refactoring is immediate local cleanup within the behavior loop. It may improve names, remove nearby duplication, simplify control flow, or clarify ownership without changing the accepted result.
114
+
115
+ Do not turn REFACTOR into a general cleanup stream. When reducing existing complexity is itself an accepted result, return the completed behavior loop and use [Simplify Code](../simplify-code/SKILL.md) as a separate execution route.
116
+
117
+ When test pressure exposes caller coordination, public states, test-only seams, or ownership problems, preserve that evidence. Use [Design for Depth](../design-for-depth/SKILL.md) only when structural pressure is supported.
63
118
 
64
119
  ## Fix Bugs Through The Reported Boundary
65
120
 
66
- First reproduce the reported symptom through the correct seam. A nearby failing path is not the bug.
121
+ First reproduce the reported symptom through the correct seam. A nearby failing path is diagnostic evidence, not the bug.
122
+
123
+ After GREEN, rerun:
124
+
125
+ 1. the minimized regression check;
126
+ 2. the original unminimized symptom or strongest available observer;
127
+ 3. the smallest affected boundary capable of exposing regression.
67
128
 
68
- If no reliable diagnostic loop or supported cause exists, use [Diagnose Failure](../diagnose-failure/SKILL.md) before selecting a production correction. After RED and GREEN, rerun both the minimized regression check and the original unminimized symptom or strongest available observer.
129
+ Do not report a fix when only the minimized check passes and the reported boundary remains unavailable.
69
130
 
70
- ## Stop When Tests Start Designing The System
131
+ ## Return The Method Result
71
132
 
72
- When Test Design's pressure signals appear, the next check requires an unplanned subsystem, or making it pass expands accepted scope, stop and return the evidence to Workflow. Use [Design for Depth](../design-for-depth/SKILL.md) only when that evidence establishes design-bearing interface or ownership pressure; diagnose repeated or unexplained failure before redesigning.
133
+ Return to the current owner with:
73
134
 
74
- ## Report
135
+ - accepted behavior and observing seam;
136
+ - observed RED result and why it was valid;
137
+ - GREEN implementation result;
138
+ - local refactor, when performed;
139
+ - focused, original-path, and affected-boundary evidence;
140
+ - what the evidence supports and does not support;
141
+ - unresolved or unverified behavior.
75
142
 
76
- Report the accepted behavior and seam, observed RED result, GREEN implementation, refactor if any, original-path and broader verification, Slice effect when relevant, and remaining unverified behavior. Return route-changing evidence rather than silently beginning another behavior or slice.
143
+ Do not select another behavior, close the Slice, trigger review, commit, or continue merely because GREEN was reached.