@hassangameryt/freeflow 0.8.0 → 0.9.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 (290) hide show
  1. package/.agents/plugins/marketplace.json +2 -2
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +2 -2
  4. package/.codex-plugin/plugin.json +3 -3
  5. package/.cursor-plugin/plugin.json +1 -1
  6. package/README.md +96 -149
  7. package/capabilities/cognitive-routing/SKILL.md +21 -129
  8. package/capabilities/cognitive-routing/references/coordinator.md +163 -0
  9. package/capabilities/cognitive-routing/references/worker.md +38 -0
  10. package/capabilities/compaction/SKILL.md +3 -3
  11. package/capabilities/compaction/references/summary-format.md +26 -15
  12. package/capabilities/messaging/SKILL.md +49 -0
  13. package/capabilities/task-memory/SKILL.md +87 -0
  14. package/command-surface.json +6 -54
  15. package/gemini-extension.json +1 -1
  16. package/hooks/claude/hooks.json +13 -3
  17. package/hooks/codex/hooks.json +2 -1
  18. package/hooks/shared/runtime-context.mjs +69 -77
  19. package/package.json +25 -8
  20. package/pi-extension/dist/ask-user/ask.js +108 -0
  21. package/pi-extension/dist/ask-user/form.js +250 -0
  22. package/pi-extension/dist/ask-user/questions.js +66 -0
  23. package/pi-extension/dist/ask-user/tool.js +124 -0
  24. package/pi-extension/dist/cognitive-routing/assembler.js +35 -11
  25. package/pi-extension/dist/cognitive-routing/bootstrap.js +90 -0
  26. package/pi-extension/dist/cognitive-routing/config.js +3 -4
  27. package/pi-extension/dist/cognitive-routing/event-store.js +4 -1
  28. package/pi-extension/dist/cognitive-routing/gate.js +20 -5
  29. package/pi-extension/dist/cognitive-routing/handlers.js +15 -13
  30. package/pi-extension/dist/cognitive-routing/model-control.js +17 -8
  31. package/pi-extension/dist/cognitive-routing/projection.js +23 -6
  32. package/pi-extension/dist/cognitive-routing/provenance.js +3 -1
  33. package/pi-extension/dist/cognitive-routing/render.js +15 -15
  34. package/pi-extension/dist/cognitive-routing/runtime.js +4 -2
  35. package/pi-extension/dist/cognitive-routing/schemas.js +4 -4
  36. package/pi-extension/dist/cognitive-routing/session.js +3 -1
  37. package/pi-extension/dist/cognitive-routing/sources.js +29 -4
  38. package/pi-extension/dist/cognitive-routing/state.js +18 -8
  39. package/pi-extension/dist/cognitive-routing/status.js +4 -3
  40. package/pi-extension/dist/cognitive-routing/tools.js +29 -15
  41. package/pi-extension/dist/cognitive-routing/types.js +10 -1
  42. package/pi-extension/dist/compaction/carry.js +36 -22
  43. package/pi-extension/dist/compaction/config.js +4 -2
  44. package/pi-extension/dist/compaction/controller.js +52 -29
  45. package/pi-extension/dist/compaction/harness.js +19 -3
  46. package/pi-extension/dist/compaction/results.js +14 -13
  47. package/pi-extension/dist/compaction/tool.js +6 -6
  48. package/pi-extension/dist/host/catalog.js +20 -35
  49. package/pi-extension/dist/host/config-validation.js +233 -0
  50. package/pi-extension/dist/host/config.js +78 -91
  51. package/pi-extension/dist/host/inbound.js +142 -0
  52. package/pi-extension/dist/host/projection-tags.js +1 -1
  53. package/pi-extension/dist/host/prompts.js +24 -13
  54. package/pi-extension/dist/host/read-only-session.js +6 -1
  55. package/pi-extension/dist/host/request-history.js +7 -3
  56. package/pi-extension/dist/host/rows.js +25 -0
  57. package/pi-extension/dist/host/runtime-state.js +17 -2
  58. package/pi-extension/dist/host/section-keeper.js +85 -0
  59. package/pi-extension/dist/host/settings/freeflow-command.js +846 -93
  60. package/pi-extension/dist/host/settings/settings-view.js +27 -8
  61. package/pi-extension/dist/host/status.js +19 -5
  62. package/pi-extension/dist/index.js +638 -72
  63. package/pi-extension/dist/messaging/config.js +27 -0
  64. package/pi-extension/dist/messaging/messaging.js +398 -0
  65. package/pi-extension/dist/messaging/registry.js +57 -0
  66. package/pi-extension/dist/messaging/render.js +90 -0
  67. package/pi-extension/dist/messaging/tools.js +109 -0
  68. package/pi-extension/dist/messaging/transport.js +101 -0
  69. package/pi-extension/dist/provider-support/cache/keepalive.js +16 -4
  70. package/pi-extension/dist/task-memory/config.js +49 -0
  71. package/pi-extension/dist/task-memory/registry.js +119 -0
  72. package/pi-extension/dist/task-memory/render.js +107 -0
  73. package/pi-extension/dist/task-memory/runtime.js +994 -0
  74. package/pi-extension/dist/task-memory/tool.js +233 -0
  75. package/pi-extension/dist/tool-execution/apply-patch/tool.js +1 -1
  76. package/pi-extension/dist/tool-execution/background.js +220 -28
  77. package/pi-extension/dist/tool-execution/config.js +14 -3
  78. package/pi-extension/dist/tool-execution/file-tracking.js +24 -4
  79. package/pi-extension/dist/tool-execution/guidance-notices.js +124 -0
  80. package/pi-extension/dist/tool-execution/skill-reads.js +143 -0
  81. package/pi-extension/dist/tool-execution/tools.js +2 -2
  82. package/runtime/prompts/cognitive-routing.md +4 -4
  83. package/runtime/prompts/core.md +24 -14
  84. package/runtime/prompts/interaction-contract.md +7 -4
  85. package/runtime/prompts/tool-execution.md +3 -16
  86. package/runtime/prompts/working-method.md +16 -99
  87. package/skills/deliver-work/SKILL.md +76 -0
  88. package/skills/deliver-work/references/branch-closeout.md +134 -0
  89. package/skills/deliver-work/references/commit.md +83 -0
  90. package/skills/deliver-work/references/launch.md +94 -0
  91. package/skills/deliver-work/references/release.md +85 -0
  92. package/skills/deliver-work/scripts/commit-state.mjs +139 -0
  93. package/skills/deliver-work/scripts/delivery-state.mjs +107 -0
  94. package/skills/deliver-work/scripts/lib/git-state.mjs +178 -0
  95. package/skills/deliver-work/scripts/push-route.mjs +122 -0
  96. package/skills/deliver-work/scripts/release-preflight.mjs +177 -0
  97. package/skills/discuss-work/SKILL.md +148 -0
  98. package/skills/{discuss → discuss-work}/references/discussion-continuity.md +10 -27
  99. package/skills/discuss-work/references/learning-action.md +36 -0
  100. package/skills/discuss-work/scripts/choices.mjs +101 -0
  101. package/skills/discuss-work/scripts/lib/choices.mjs +159 -0
  102. package/skills/evaluate-behavior/SKILL.md +107 -0
  103. package/skills/evaluate-behavior/references/authoring.md +381 -0
  104. package/skills/evaluate-behavior/references/coding-tasks.md +145 -0
  105. package/skills/evaluate-behavior/references/conversations-pipelines-judges.md +177 -0
  106. package/skills/evaluate-behavior/references/design-and-measurement.md +273 -0
  107. package/skills/evaluate-behavior/references/running-and-evidence.md +245 -0
  108. package/skills/evaluate-behavior/scripts/claude-guard.mjs +76 -0
  109. package/skills/evaluate-behavior/scripts/guard-rules.mjs +309 -0
  110. package/skills/evaluate-behavior/scripts/lib/agreement.mjs +90 -0
  111. package/skills/evaluate-behavior/scripts/lib/arms.mjs +55 -0
  112. package/skills/evaluate-behavior/scripts/lib/budget.mjs +87 -0
  113. package/skills/evaluate-behavior/scripts/lib/build-source.mjs +287 -0
  114. package/skills/evaluate-behavior/scripts/lib/clear.mjs +74 -0
  115. package/skills/evaluate-behavior/scripts/lib/container.mjs +395 -0
  116. package/skills/evaluate-behavior/scripts/lib/decision.mjs +418 -0
  117. package/skills/evaluate-behavior/scripts/lib/definitions.mjs +1072 -0
  118. package/skills/evaluate-behavior/scripts/lib/freeflow.mjs +103 -0
  119. package/skills/evaluate-behavior/scripts/lib/grade-command.mjs +591 -0
  120. package/skills/evaluate-behavior/scripts/lib/grade-comparison.mjs +90 -0
  121. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-interaction.mjs +19 -18
  122. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-support.mjs +32 -5
  123. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-workspace.mjs +28 -12
  124. package/skills/evaluate-behavior/scripts/lib/grade.mjs +101 -0
  125. package/skills/evaluate-behavior/scripts/lib/hooks.mjs +98 -0
  126. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/confinement.mjs +196 -0
  127. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/constraints.mjs +111 -0
  128. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/index.mjs +48 -0
  129. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/isolation.mjs +74 -0
  130. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/launch.mjs +123 -0
  131. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/model-call.mjs +73 -0
  132. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/recorder.mjs +178 -0
  133. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/session.mjs +494 -0
  134. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/skills.mjs +81 -0
  135. package/skills/evaluate-behavior/scripts/lib/hosts/index.mjs +31 -0
  136. package/skills/evaluate-behavior/scripts/lib/hosts/names.mjs +3 -0
  137. package/skills/evaluate-behavior/scripts/lib/hosts/pi/confinement.mjs +173 -0
  138. package/skills/evaluate-behavior/scripts/lib/hosts/pi/host.mjs +148 -0
  139. package/skills/evaluate-behavior/scripts/lib/hosts/pi/index.mjs +70 -0
  140. package/skills/evaluate-behavior/scripts/lib/hosts/pi/isolation.mjs +81 -0
  141. package/skills/evaluate-behavior/scripts/lib/hosts/pi/model-call.mjs +79 -0
  142. package/skills/evaluate-behavior/scripts/lib/hosts/pi/process.mjs +241 -0
  143. package/skills/{evaluate-skill/scripts/lib → evaluate-behavior/scripts/lib/hosts/pi}/rpc.mjs +144 -26
  144. package/skills/evaluate-behavior/scripts/lib/identity.mjs +82 -0
  145. package/skills/evaluate-behavior/scripts/lib/judge.mjs +688 -0
  146. package/skills/evaluate-behavior/scripts/lib/metrics.mjs +332 -0
  147. package/skills/evaluate-behavior/scripts/lib/model-call.mjs +17 -0
  148. package/skills/evaluate-behavior/scripts/lib/participants.mjs +616 -0
  149. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/process.mjs +22 -0
  150. package/skills/evaluate-behavior/scripts/lib/queue.mjs +54 -0
  151. package/skills/evaluate-behavior/scripts/lib/reference.mjs +343 -0
  152. package/skills/evaluate-behavior/scripts/lib/reuse.mjs +277 -0
  153. package/skills/evaluate-behavior/scripts/lib/review.mjs +933 -0
  154. package/skills/evaluate-behavior/scripts/lib/runner.mjs +732 -0
  155. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/sandbox.mjs +119 -14
  156. package/skills/evaluate-behavior/scripts/lib/scan-shell.mjs +457 -0
  157. package/skills/evaluate-behavior/scripts/lib/scan.mjs +479 -0
  158. package/skills/evaluate-behavior/scripts/lib/seal.mjs +91 -0
  159. package/skills/evaluate-behavior/scripts/lib/shell.mjs +560 -0
  160. package/skills/evaluate-behavior/scripts/lib/source-override.mjs +64 -0
  161. package/skills/evaluate-behavior/scripts/lib/subject-file.mjs +88 -0
  162. package/skills/{evaluate-skill/scripts/lib/pi.mjs → evaluate-behavior/scripts/lib/subject.mjs} +235 -265
  163. package/skills/evaluate-behavior/scripts/lib/task-copy.mjs +124 -0
  164. package/skills/evaluate-behavior/scripts/lib/trials.mjs +524 -0
  165. package/skills/evaluate-behavior/scripts/lib/validity.mjs +68 -0
  166. package/skills/evaluate-behavior/scripts/lib/view-html.mjs +454 -0
  167. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/view.mjs +159 -18
  168. package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-command-tool.mjs +21 -6
  169. package/skills/evaluate-behavior/scripts/pi-container-route.mjs +23 -0
  170. package/skills/evaluate-behavior/scripts/pi-guard.mjs +77 -0
  171. package/skills/evaluate-behavior/scripts/pi-login-refresh.mjs +31 -0
  172. package/skills/evaluate-behavior/scripts/skill-eval.mjs +586 -0
  173. package/skills/execute-work/SKILL.md +96 -104
  174. package/skills/execute-work/references/code-practices.md +27 -51
  175. package/skills/execute-work/references/design.md +271 -0
  176. package/skills/execute-work/references/diagnose.md +117 -0
  177. package/skills/execute-work/references/migration.md +108 -0
  178. package/skills/execute-work/references/simplify.md +65 -0
  179. package/skills/execute-work/scripts/self-review.mjs +422 -0
  180. package/skills/execute-work/scripts/touch-map.mjs +290 -0
  181. package/skills/review-work/SKILL.md +89 -65
  182. package/skills/review-work/references/adjudication.md +94 -0
  183. package/skills/review-work/references/artifact.md +198 -0
  184. package/skills/review-work/references/evals-and-judges.md +66 -0
  185. package/skills/review-work/references/work.md +177 -0
  186. package/skills/review-work/scripts/check-brief.mjs +128 -0
  187. package/skills/review-work/scripts/review-packet.mjs +233 -0
  188. package/skills/setup-freeflow/SKILL.md +68 -17
  189. package/skills/track-work/SKILL.md +52 -20
  190. package/skills/track-work/references/handoff.md +190 -0
  191. package/skills/track-work/references/projects.md +51 -0
  192. package/skills/track-work/references/working-record-format.md +36 -18
  193. package/skills/track-work/scripts/lib/document.mjs +17 -13
  194. package/skills/track-work/scripts/lib/format.mjs +2 -0
  195. package/skills/track-work/scripts/lib/recover.mjs +254 -0
  196. package/skills/track-work/scripts/lib/registry.mjs +656 -0
  197. package/skills/track-work/scripts/lib/search.mjs +40 -0
  198. package/skills/track-work/scripts/lib/store.mjs +46 -15
  199. package/skills/track-work/scripts/lib/views.mjs +50 -1
  200. package/skills/track-work/scripts/working-record.mjs +232 -13
  201. package/skills/verify-work/SKILL.md +45 -37
  202. package/skills/verify-work/references/feature-map.md +120 -0
  203. package/skills/verify-work/references/runtime-evidence.md +203 -0
  204. package/skills/verify-work/references/test-design.md +25 -6
  205. package/skills/verify-work/scripts/test-changes.mjs +246 -0
  206. package/skills/write-docs/SKILL.md +113 -25
  207. package/skills/write-docs/references/documentation-shapes.md +68 -3
  208. package/skills/write-docs/references/spec-and-plan-shapes.md +308 -0
  209. package/skills/write-docs/scripts/artifact-check.mjs +148 -0
  210. package/skills/write-docs/scripts/docs-check.mjs +96 -6
  211. package/skills/write-docs/scripts/plan-lint.mjs +123 -0
  212. package/skills/write-skill/SKILL.md +92 -52
  213. package/skills/write-skill/references/activation-and-wording.md +143 -0
  214. package/skills/write-skill/references/placement-and-dependencies.md +154 -0
  215. package/skills/write-skill/scripts/lib/compare.mjs +701 -0
  216. package/skills/write-skill/scripts/lib/skill-author.mjs +197 -3
  217. package/skills/write-skill/scripts/skill-author.mjs +51 -8
  218. package/capabilities/cognitive-routing/references/both-mode.md +0 -36
  219. package/capabilities/cognitive-routing/references/executor-mode.md +0 -48
  220. package/capabilities/cognitive-routing/references/helper-mode.md +0 -47
  221. package/plugin.json +0 -33
  222. package/skills/action-selection/SKILL.md +0 -92
  223. package/skills/action-selection/references/trajectory-stalls.md +0 -73
  224. package/skills/bypass/SKILL.md +0 -153
  225. package/skills/commit-work/SKILL.md +0 -93
  226. package/skills/commit-work/references/git-state-edges.md +0 -94
  227. package/skills/commit-work/references/simple-push.md +0 -94
  228. package/skills/commit-work/references/staging-decisions.md +0 -106
  229. package/skills/decision-gate/SKILL.md +0 -87
  230. package/skills/design-for-depth/SKILL.md +0 -108
  231. package/skills/design-for-depth/references/design-pressure-signals.md +0 -84
  232. package/skills/design-for-depth/references/implementation-decisions.md +0 -76
  233. package/skills/design-for-depth/references/interface-design-loop.md +0 -105
  234. package/skills/design-for-depth/references/module-and-dependency-design.md +0 -117
  235. package/skills/design-for-depth/references/state-and-failure-boundaries.md +0 -125
  236. package/skills/diagnose-failure/SKILL.md +0 -140
  237. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +0 -50
  238. package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +0 -51
  239. package/skills/discuss/SKILL.md +0 -140
  240. package/skills/evaluate-skill/SKILL.md +0 -188
  241. package/skills/evaluate-skill/references/evaluation-definition-schema.md +0 -415
  242. package/skills/evaluate-skill/references/evaluation-design.md +0 -112
  243. package/skills/evaluate-skill/references/execution-and-evidence.md +0 -111
  244. package/skills/evaluate-skill/references/review-and-revision.md +0 -94
  245. package/skills/evaluate-skill/scripts/lib/definitions.mjs +0 -448
  246. package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +0 -60
  247. package/skills/evaluate-skill/scripts/lib/grade.mjs +0 -64
  248. package/skills/evaluate-skill/scripts/lib/review.mjs +0 -196
  249. package/skills/evaluate-skill/scripts/lib/runner.mjs +0 -405
  250. package/skills/evaluate-skill/scripts/lib/trials.mjs +0 -103
  251. package/skills/evaluate-skill/scripts/pi-guard.mjs +0 -181
  252. package/skills/evaluate-skill/scripts/skill-eval.mjs +0 -182
  253. package/skills/execute-work/references/execute-work-edges.md +0 -78
  254. package/skills/finish-branch/SKILL.md +0 -117
  255. package/skills/finish-branch/references/integration-options.md +0 -80
  256. package/skills/handoff/SKILL.md +0 -82
  257. package/skills/handoff/references/handoff-templates.md +0 -150
  258. package/skills/launch-work/SKILL.md +0 -116
  259. package/skills/launch-work/references/launch-readiness.md +0 -85
  260. package/skills/migration-work/SKILL.md +0 -115
  261. package/skills/migration-work/references/migration-lifecycle.md +0 -82
  262. package/skills/release-work/SKILL.md +0 -118
  263. package/skills/release-work/references/release-evidence.md +0 -78
  264. package/skills/review-artifact/SKILL.md +0 -143
  265. package/skills/review-artifact/references/adjudicate-artifact-review.md +0 -101
  266. package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +0 -159
  267. package/skills/review-work/references/adjudicate-work-review.md +0 -97
  268. package/skills/review-work/references/independent-work-reviewer-contract.md +0 -139
  269. package/skills/review-work/references/security-risk-lens.md +0 -67
  270. package/skills/setup-freeflow/references/activation-contract.md +0 -103
  271. package/skills/setup-freeflow/references/host-setup.md +0 -67
  272. package/skills/simplify-code/SKILL.md +0 -85
  273. package/skills/simplify-code/references/simplification-patterns.md +0 -70
  274. package/skills/verify-work/references/browser-runtime-evidence.md +0 -51
  275. package/skills/verify-work/references/integration-evidence.md +0 -49
  276. package/skills/verify-work/references/performance-evidence.md +0 -59
  277. package/skills/workflow/SKILL.md +0 -171
  278. package/skills/workflow/references/domain-skill-composition.md +0 -45
  279. package/skills/write-plan/SKILL.md +0 -92
  280. package/skills/write-plan/references/plan-shapes.md +0 -156
  281. package/skills/write-skill/references/activation-boundaries.md +0 -106
  282. package/skills/write-skill/references/agent-first-instructions.md +0 -133
  283. package/skills/write-skill/references/progressive-disclosure.md +0 -129
  284. package/skills/write-skill/references/skill-dependency-graphs.md +0 -192
  285. package/skills/write-spec/SKILL.md +0 -85
  286. package/skills/write-spec/references/artifact-standards.md +0 -86
  287. package/skills/write-spec/references/decision-records.md +0 -80
  288. package/skills/write-spec/references/spec-shapes.md +0 -143
  289. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/evidence.mjs +0 -0
  290. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-observer.mjs +0 -0
@@ -1,73 +0,0 @@
1
- # Trajectory Stalls
2
-
3
- Read this when two or more recent environment interactions have not materially changed the current question, advanced the covered effect, or supported a new branch.
4
-
5
- This reference is judgment: use it to recover a useful interaction, not as a checklist.
6
-
7
- A stall is evidence that the current interaction policy is no longer producing useful progress. It does not prove that the task is difficult, the design is wrong, or another model is required.
8
-
9
- ## Recognize A Stall
10
-
11
- Common stall patterns include:
12
-
13
- - repeating searches with synonymous terms;
14
- - rereading unchanged sources without a new question;
15
- - rerunning the same check against unchanged state;
16
- - widening search breadth without narrowing the hypothesis;
17
- - collecting new output that does not change any belief or decision;
18
- - revisiting a path already eliminated by supported evidence;
19
- - changing hypotheses without a new observation;
20
- - alternating edits, failures, and reversions without a supported cause;
21
- - following each newly mentioned symbol or file away from the accepted outcome;
22
- - continuing because interaction began rather than because evidence supports another step.
23
-
24
- The following are not automatically stalls:
25
-
26
- - several distinct mechanical interactions required by one exact covered effect;
27
- - rerunning evidence after relevant state changed;
28
- - a long-running operation that is still producing the selected result;
29
- - checking a broader boundary after a focused result when that boundary was already required;
30
- - returning through several files along one supported call or dependency path.
31
-
32
- Judge progress by changed understanding, produced effects, or a newly supported branch—not raw action count.
33
-
34
- ## Stop Before Another Similar Interaction
35
-
36
- Before another environment action:
37
-
38
- 1. restate the unresolved question or exact covered effect;
39
- 2. identify what the recent interactions established;
40
- 3. identify which paths or hypotheses they eliminated;
41
- 4. state why the interactions failed to change the decision;
42
- 5. determine whether another observer class could discriminate where the previous one could not.
43
-
44
- Different observer classes may include:
45
-
46
- - structural navigation instead of text search;
47
- - caller or dependency tracing instead of concept search;
48
- - runtime behavior instead of source inspection;
49
- - source inspection instead of another runtime rerun;
50
- - exact artifact comparison instead of summary output;
51
- - a minimized reproduction instead of another speculative edit.
52
-
53
- Changing syntax, keywords, directories, or tools without changing the evidence relationship is not a different observer class.
54
-
55
- ## Recover With One Discriminating Action
56
-
57
- When a different covered observer can answer the unresolved question:
58
-
59
- 1. name what result would support or contradict the leading path;
60
- 2. bound one interaction;
61
- 3. execute it once;
62
- 4. return its observation to the current owner.
63
-
64
- Do not compensate for a stall by generating a long plan, exploring every remaining path, or broadening the task.
65
-
66
- When no covered interaction can discriminate:
67
-
68
- - return the smallest missing evidence to the current owner;
69
- - return a changed authority, scope, ownership, direction, or required observing boundary to [Workflow](../../workflow/SKILL.md);
70
- - use [Diagnose Failure](../../diagnose-failure/SKILL.md) when repeated failure lacks a supported cause;
71
- - stop when the active execution contract requires return.
72
-
73
- A stall recovery succeeds when the decision surface changes or the absence of a safe useful interaction becomes explicit. It does not require another tool call.
@@ -1,153 +0,0 @@
1
- ---
2
- name: bypass
3
- description: "Use when the user explicitly asks to skip or reduce optional workflow pressure for the next authorized activity or the current task."
4
- ---
5
-
6
- # Bypass
7
-
8
- Reduce explicitly selected optional workflow pressure without changing authority, accepted intent, the current owner, execution method, evidence semantics, selected checkpoints, mode, active capability protocols, or host controls.
9
-
10
- Bypass is a user-controlled pressure modifier. It does not authorize the underlying work and does not perform that work itself.
11
-
12
- **Optional pressure** is a workflow step whose removal does not weaken accepted intent, material risk control, required evidence, a selected checkpoint, or safe continuation.
13
-
14
- ## Interpret The Request Narrowly
15
-
16
- Use Bypass only when the user explicitly asks to skip or reduce workflow pressure. Do not infer bypass from urgency, frustration, brevity, “just do it,” or a preference for concise responses.
17
-
18
- Establish:
19
-
20
- - the already-authorized activity;
21
- - the specific pressure the user wants removed;
22
- - whether the requested scope is `next` or `task`;
23
- - the authority, evidence, checkpoints, and stop conditions that remain;
24
- - when the bypass expires.
25
-
26
- A bare `/bypass` means `/bypass next`.
27
-
28
- If the same user turn both authorizes an activity and explicitly requests reduced pressure, interpret the whole turn through [Workflow](../workflow/SKILL.md). Bypass may modify that authorized activity; it does not supply its authority.
29
-
30
- If no authorized activity exists, return to Workflow and wait. Do not treat bypass as permission to implement, inspect actively, mutate, deliver, commit, or continue.
31
-
32
- ## Skip Only Optional Pressure
33
-
34
- A valid bypass may remove:
35
-
36
- - an unnecessary Spec, Plan, or Working Record;
37
- - extended questioning whose answer would not change the accepted activity;
38
- - an artifact created only for ceremony;
39
- - duplicate explanation or status reporting;
40
- - a proposed but unselected review or checkpoint with no remaining risk purpose;
41
- - another optional step whose removal does not weaken the supported outcome.
42
-
43
- Do not infer that a named artifact, review, check, or checkpoint is optional. Inspect what it protects before removing it.
44
-
45
- Freeflow should already avoid unnecessary ceremony. Bypass is an explicit user override when optional pressure was proposed or recommended but was not selected as a required boundary, or would otherwise remain in the route.
46
-
47
- ## Preserve Non-Bypassable Boundaries
48
-
49
- Bypass does not remove or override:
50
-
51
- - the user’s authority over product behavior, scope, priorities, public interfaces, compatibility, permissions, security, privacy, billing, data loss, migration direction, deployment, or another hard-to-reverse outcome;
52
- - conflicts among the request, code, tests, docs, policies, requirements, accepted behavior, or another source of truth;
53
- - the authority the user granted or separately controlled effects;
54
- - host safety, sandbox, permission, approval, or tool controls;
55
- - mode boundaries or active capability protocols;
56
- - the distinction between available evidence and supported claims;
57
- - required self-review before accepting or reusing a supported result;
58
- - an accepted Spec, Plan, selected checkpoint, required artifact review, or selected independent review;
59
- - a stop condition, blocker, or evidence that invalidates the current route.
60
-
61
- Material risk still requires the decisions and evidence that address it. A domain label alone does not require ceremony, but bypass cannot erase an observed risk.
62
-
63
- Bypass cannot allow an active compute profile to act outside its execution protocol. Use the capability’s own user controls when the user wants to change manual or automatic control, profile behavior, or another capability setting.
64
-
65
- ## Respect Declined Evidence Without Inventing Support
66
-
67
- A user may explicitly decline a test, build, runtime probe, review, or other evidence generation. Respect that instruction unless a higher-priority repository, host, or safety requirement prevents it.
68
-
69
- Declining evidence does not make the corresponding claim supported.
70
-
71
- When evidence is declined:
72
-
73
- - perform only the remaining authorized work that can continue safely;
74
- - leave the affected claim explicitly unverified;
75
- - do not accept or reuse the result beyond the remaining evidence boundary;
76
- - do not cross a checkpoint or dependent boundary that requires the missing evidence;
77
- - return to Workflow when the expected exit, checkpoint, or safe continuation must change.
78
-
79
- A request to skip evidence generation changes what may be claimed. It does not change what the available evidence proves.
80
-
81
- ## Route Changes Are Not Bypass
82
-
83
- Treat the request as a Workflow route change when the user wants to:
84
-
85
- - change accepted behavior, scope, effects, or stop conditions;
86
- - weaken or replace an accepted evidence requirement;
87
- - cancel or replace a selected checkpoint;
88
- - revise an accepted Spec or Plan;
89
- - change mode or an active capability protocol;
90
- - continue despite contradictory evidence or a source conflict.
91
-
92
- An explicit user instruction may authorize the changed route, but Workflow must reconcile its consequences before dependent work continues.
93
-
94
- Use [Decision Gate](../decision-gate/SKILL.md) only when one user-owned choice or source conflict remains unresolved.
95
-
96
- ## Apply The Selected Scope
97
-
98
- ### Next
99
-
100
- `/bypass next` removes one identified optional pressure from the current authorized activity.
101
-
102
- The bypass is spent when:
103
-
104
- - the selected pressure is skipped;
105
- - the activity changes;
106
- - another gate or stop condition appears;
107
- - the route ends.
108
-
109
- Re-check the route immediately after applying it. Do not carry the bypass into another activity by implication.
110
-
111
- ### Task
112
-
113
- `/bypass task` reduces identified optional pressure for the current accepted task.
114
-
115
- The task is the accepted request or active Working Record scope—not the repository, session, branch, or future related work.
116
-
117
- Name the pressure being reduced when possible. Do not interpret task scope as “ignore all workflow for this task.”
118
-
119
- Task scope ends when:
120
-
121
- - the task completes or is abandoned;
122
- - its accepted outcome changes materially;
123
- - the user withdraws or replaces the bypass;
124
- - a new task begins.
125
-
126
- Reassess new risks, conflicts, evidence requirements, checkpoints, and separately controlled effects inside the task. Task scope does not make them optional.
127
-
128
- When an existing Working Record is already authorized for maintenance and the task-scoped bypass must survive context loss, use [Track Work](../track-work/SKILL.md) to preserve its source, exact pressure, scope, and expiry.
129
-
130
- The record preserves the user instruction; it does not broaden it. Without durable task memory, do not claim task-scoped bypass survives context loss.
131
-
132
- Never convert `next` or `task` scope into permanent, repository-wide, session-wide, or cross-task behavior.
133
-
134
- ## Return The Modified Route
135
-
136
- When the bypass is valid:
137
-
138
- 1. identify the optional pressure being removed;
139
- 2. apply only the selected scope;
140
- 3. return the reduced-pressure route to the unchanged current owner;
141
- 4. let that owner perform the separately authorized activity;
142
- 5. preserve the same evidence honesty, self-review, and stop conditions;
143
- 6. report what was skipped only when it materially clarifies the result or remaining scope.
144
-
145
- Do not narrate internal bypass state on every turn. Speak in ordinary engineering language unless the scope or expiry matters to the user.
146
-
147
- When a boundary remains:
148
-
149
- 1. do not perform the blocked action;
150
- 2. state the boundary the bypass cannot remove;
151
- 3. return to Workflow, Decision Gate, or the relevant current owner.
152
-
153
- Bypass ends when the selected optional pressure has been removed, its scope expires, or a non-bypassable boundary requires another route.
@@ -1,93 +0,0 @@
1
- ---
2
- name: "commit-work"
3
- description: "Use when creating an explicitly requested or selected local Git commit, including staging its exact contents, verifying the resulting checkpoint, or performing a separately authorized simple push."
4
- ---
5
-
6
- # Commit Work
7
-
8
- Preserve one supported repository state as a coherent local Git checkpoint.
9
-
10
- Commit Work normally follows execution, verification, self-review, and any selected independent review. It preserves that supported state; it does not establish correctness, close the Slice, authorize another Slice, or imply push, integration, release, or launch. A commit is not mandatory merely because work finished.
11
-
12
- The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better.
13
-
14
- ## Rules
15
-
16
- - Commit only when the user explicitly requests a local commit or [Workflow](../workflow/SKILL.md) selects an authorized `preserve` Checkpoint. Approval to implement does not imply approval to commit, and a Working Record may preserve checkpoint selection and authority but cannot create them.
17
- - Never silently unstage, reset, rearrange, discard, overwrite, or absorb user-owned or pre-existing staged work to manufacture a clean commit.
18
- - Never stage Working Records (`.freeflow/tasks/**`), secrets, credentials, private keys, local environment files, or unexplained sensitive content.
19
- - Never use `--amend`, `--allow-empty`, or `--no-verify` by implication, and never bypass or blindly retry a failing hook.
20
- - The commit claim never exceeds the available verification and review evidence. An explicitly requested preservation checkpoint may capture incomplete, failing, or inconclusive work; describe it honestly and do not treat the commit as permission to cross the unresolved boundary.
21
- - A local commit does not authorize push. A commit is never a Slice of its own. Do not stage leftovers, begin another Slice, push, integrate, release, or clean up merely because the commit succeeded.
22
-
23
- ## Enter At The Commit Boundary
24
-
25
- Goal: commit one supported state that the request, decisions, and live changes all describe.
26
-
27
- Before staging, confirm that local commit authority is explicit and still valid; the checkpoint has one coherent claim; the request, accepted decisions, and live changes describe the same outcome; fresh evidence supports the exact state, or this is an explicitly requested preservation checkpoint; any selected independent review is complete and its material findings adjudicated; and no unresolved decision, source conflict, or required evidence gap is hidden by the claim.
28
-
29
- Commit Work verifies fidelity between the supported state and the Git checkpoint. It does not dispatch missing review, repair implementation, or generate missing behavioral evidence; return those needs to Workflow.
30
-
31
- ## Inspect The Candidate State
32
-
33
- Goal: know every changed path and who owns it before touching the index.
34
-
35
- Inspect before changing the index:
36
-
37
- ```bash
38
- git status --short --branch
39
- git status
40
- git diff
41
- git diff --cached
42
- git ls-files --others --exclude-standard
43
- ```
44
-
45
- Inspect submodule state when status reports a changed submodule. Staged state is evidence of index contents, not of ownership, intent, verification, or readiness.
46
-
47
- Read [Staging Decisions](references/staging-decisions.md) when staged, unstaged, or untracked changes have mixed ownership or concerns; a path contains both intended and excluded changes; existing staged ownership is uncertain; generated, durable, sensitive, or suspicious files appear; or narrowing may require changing existing staged state.
48
-
49
- Read [Git State Edges](references/git-state-edges.md) when Git reports an in-progress operation, unmerged paths, detached `HEAD`, submodule ambiguity, or an empty candidate; a requested commit would amend, be empty, or bypass hooks; or any commit or hook fails.
50
-
51
- ## Build The Exact Checkpoint
52
-
53
- Goal: the index contains exactly the checkpoint, and nothing is left behind unexplained.
54
-
55
- Stage only paths or hunks required to make the checkpoint claim true. Broad staging is acceptable only when every changed path has been inspected and belongs to the same checkpoint; otherwise stage explicit paths or hunks.
56
-
57
- After staging, inspect the exact candidate with `git diff --cached` and `git diff --cached --check`, and confirm that every staged path and hunk belongs; required tests, documentation, generated outputs, or metadata are present; no unrelated, sensitive, unexplained, or user-owned content is included; the staged diff is non-empty unless an empty commit was explicitly requested; and excluded working-tree changes do not invalidate the evidence for the staged checkpoint.
58
-
59
- Interpret `git diff --cached --check` against repository conventions. Unresolved conflict markers or unintended whitespace damage stop the commit; do not edit content merely to silence the command. If producing the exact checkpoint requires source changes, more evidence, or a user-owned staging decision, return to Workflow.
60
-
61
- ## Create The Commit
62
-
63
- Goal: a message that describes the actual checkpoint.
64
-
65
- Use the repository's established commit-message style; otherwise a short imperative subject describing the actual checkpoint, not the wider task ambition. Add a body only when the diff does not explain material context, tradeoffs, residual risk, or why incomplete state is being preserved. Reference issues, Specs, Plans, or decisions only when they materially explain the checkpoint, and do not invent trailers or metadata conventions.
66
-
67
- Create an ordinary local commit from the inspected index. If a hook fails, changes files or the index, or makes prior evidence stale, inspect the resulting state through Git State Edges.
68
-
69
- ## Verify And Report The Checkpoint
70
-
71
- Goal: the created commit is the checkpoint that was claimed, and nothing else changed.
72
-
73
- After Git reports success, inspect:
74
-
75
- ```bash
76
- git show --stat --oneline --decorate HEAD
77
- git show --format= --name-status HEAD
78
- git status --short --branch
79
- ```
80
-
81
- Confirm that the intended commit was created, its subject and contents represent the claim, no unexpected staged, unstaged, or untracked state resulted, and remaining changes are known.
82
-
83
- Report the commit SHA and subject; the checkpoint claim and included scope; verification and selected-review evidence; whether it is complete or an honest preservation checkpoint; remaining staged, unstaged, untracked, unverified, or unpushed work; and any hook, signing, identity, or repository limitation.
84
-
85
- Return the result to Workflow. When a Working Record exists, Workflow may route [Track Work](../track-work/SKILL.md) to record `commit:<sha>` in the Current Slice's Material updates, close the selected `preserve` Checkpoint, and reconcile the Current Slice.
86
-
87
- ## Push Only When Separately Authorized
88
-
89
- Before any push, read [Simple Push](references/simple-push.md). Use [Finish Branch](../finish-branch/SKILL.md) instead when the request involves integration, pull-request strategy, branch cleanup, history rewriting, or choosing among branch-closeout routes.
90
-
91
- ## Stop
92
-
93
- Stop and return the smallest blocking fact when commit authority or the checkpoint claim is unclear; live changes no longer match the supported outcome; selected review or required evidence remains unresolved; the exact checkpoint cannot be staged without manipulating ambiguous user-owned state; sensitive or unexplained content may be included; Git is in a non-ordinary state whose intended outcome is unsettled; creating the commit would require implementation changes, evidence generation, hook bypass, amendment, or history rewriting outside explicit authority; or a push destination, upstream, or remote-history effect is unclear.
@@ -1,94 +0,0 @@
1
- # Git State Edges
2
-
3
- Read this when Git reports an in-progress operation, unmerged paths, detached `HEAD`, submodule ambiguity, or an empty candidate; a requested commit would amend, be empty, or bypass hooks; or any commit or hook fails.
4
-
5
- These states can change the meaning or recoverability of a commit. Inspect before choosing a recovery action. Each "do not" below is binding; the inspection steps are judgment.
6
-
7
- ## In-Progress Operations
8
-
9
- A commit during merge, rebase, cherry-pick, or revert may complete or advance that operation rather than create an ordinary checkpoint.
10
-
11
- Stop and establish:
12
-
13
- - which operation is active;
14
- - whether the current checkpoint is intended to conclude it;
15
- - whether all conflicts and behavior decisions are settled;
16
- - which owner should continue the operation;
17
- - what verification is required on the resulting state.
18
-
19
- Do not use Commit Work to finish an operation merely because Git currently permits `commit`.
20
-
21
- Unmerged paths always stop an ordinary commit.
22
-
23
- ## Detached HEAD
24
-
25
- A detached-`HEAD` commit may be valid but can become difficult to recover or push.
26
-
27
- Before committing, require an explicit preservation route naming how the resulting commit will remain reachable. Use [Finish Branch](../../finish-branch/SKILL.md) when branch creation, integration, or checkout ownership must be decided.
28
-
29
- Do not silently create or switch branches.
30
-
31
- ## Amend And Empty Commits
32
-
33
- `git commit --amend` rewrites an existing checkpoint. Use it only when the user explicitly requests amendment and the exact target commit, included changes, authorship effects, and remote-history state are known.
34
-
35
- If the target may already be shared or pushed, return to [Workflow](../../workflow/SKILL.md) or Finish Branch before rewriting it.
36
-
37
- Use `--allow-empty` only for an explicitly requested empty checkpoint with a named repository purpose. An accidentally empty index is not authorization for an empty commit.
38
-
39
- ## Hooks
40
-
41
- Do not bypass hooks merely because they block the commit.
42
-
43
- When a hook fails:
44
-
45
- 1. preserve its complete result;
46
- 2. inspect `HEAD`, the index, and working tree;
47
- 3. determine whether a commit was created despite the reported failure;
48
- 4. determine whether the hook changed files or staged content;
49
- 5. return implementation, verification, policy, or environment failures to their owning route.
50
-
51
- When a hook changes repository content, the previously supported state may no longer be the state being committed. Reinspect the complete diff and obtain affected verification before retrying.
52
-
53
- Use `--no-verify` only when the user explicitly requests that exact bypass and repository policy permits it. Report which checks were skipped and which claims therefore remain unsupported.
54
-
55
- ## Commit Command Failures
56
-
57
- After any failed or interrupted commit attempt, inspect:
58
-
59
- ```bash
60
- git status
61
- git diff
62
- git diff --cached
63
- git log -1 --oneline --decorate
64
- ```
65
-
66
- Do not assume failure means no commit was created or no state changed.
67
-
68
- For identity, signing, credential-helper, editor, lock, filesystem, or permission failures:
69
-
70
- - do not change global or repository Git configuration without authority;
71
- - do not delete lock files while process ownership is unclear;
72
- - do not retry through a materially different command without a supported cause;
73
- - report the exact blocker and preserved state.
74
-
75
- Use [Diagnose Failure](../../diagnose-failure/SKILL.md) when the cause remains unclear or a retry repeats the failure.
76
-
77
- ## Submodules
78
-
79
- A parent commit records a submodule pointer, not the submodule's uncommitted contents.
80
-
81
- Inspect:
82
-
83
- - the recorded pointer change;
84
- - whether the nested worktree is dirty;
85
- - whether the intended checkpoint includes the pointer update;
86
- - whether nested changes have their own preservation route.
87
-
88
- Do not claim nested changes are preserved by committing only the parent repository.
89
-
90
- ## Return Safely
91
-
92
- Return to Commit Work only when the repository has one supported, recoverable checkpoint candidate.
93
-
94
- Otherwise preserve the exact Git state and return to Workflow, Finish Branch, Diagnose Failure, or the producing activity whose responsibility changed.
@@ -1,94 +0,0 @@
1
- # Simple Push
2
-
3
- Read this before performing any push through Commit Work.
4
-
5
- The stop conditions and prohibitions below are binding; the inspection commands are judgment.
6
-
7
- A **simple push** sends inspected local commits from the current named branch to one explicit or established remote branch without force, deletion, tag publication, integration, pull-request creation, release, or deployment.
8
-
9
- Use [Finish Branch](../../finish-branch/SKILL.md) when the route requires choosing how to integrate, share, preserve, rewrite, or clean up branch state.
10
-
11
- ## Confirm Push Authority
12
-
13
- Push requires authority separate from local commit.
14
-
15
- Confirm:
16
-
17
- - which commits are intended;
18
- - the local branch;
19
- - the destination remote and branch;
20
- - whether setting a new upstream is included;
21
- - that no force, deletion, tag, or history rewrite is implied.
22
-
23
- Do not infer a remote, destination branch, pull-request target, or shared-branch policy when the wrong choice could affect collaborators.
24
-
25
- ## Inspect The Route
26
-
27
- Inspect:
28
-
29
- ```bash
30
- git branch --show-current
31
- git status --short --branch
32
- git branch -vv
33
- git remote -v
34
- git log -1 --oneline --decorate
35
- ```
36
-
37
- When an upstream exists, inspect:
38
-
39
- ```bash
40
- git rev-parse --abbrev-ref --symbolic-full-name @{upstream}
41
- git rev-list --left-right --count @{upstream}...HEAD
42
- ```
43
-
44
- Ahead/behind state is only as fresh as the local remote-tracking reference. Do not claim current remote state unless it was freshly observed.
45
-
46
- Stop before pushing when:
47
-
48
- - `HEAD` is detached;
49
- - destination or upstream is unclear;
50
- - unexpected commits or dirty state change the route;
51
- - protected or shared-branch policy disallows the push or leaves its route unclear;
52
- - local and observed upstream history diverge;
53
- - the push would require force, deletion, tag publication, or another separately controlled action.
54
-
55
- ## Push The Exact Branch
56
-
57
- Use the established upstream when it clearly matches the approved route.
58
-
59
- When no upstream exists, set one only when the remote and branch destination are explicit and the configuration change is included in the accepted route.
60
-
61
- Do not push additional branches or tags.
62
-
63
- A force push is not a simple push. Return an explicitly requested history rewrite to Workflow or Finish Branch.
64
-
65
- ## Handle Rejection Without Escalation
66
-
67
- If the push is rejected or fails:
68
-
69
- - preserve the complete result;
70
- - do not automatically pull, merge, rebase, force, change remotes, or change destination;
71
- - inspect whether any remote update occurred;
72
- - return authentication, divergence, policy, or destination decisions to [Workflow](../../workflow/SKILL.md) or Finish Branch.
73
-
74
- A failed push does not invalidate the local commit.
75
-
76
- ## Verify And Report
77
-
78
- After a successful push, inspect:
79
-
80
- ```bash
81
- git status --short --branch
82
- git branch -vv
83
- ```
84
-
85
- Report:
86
-
87
- - pushed commit range;
88
- - remote and destination branch;
89
- - whether an upstream was created or changed;
90
- - command result and strongest observed remote-state evidence;
91
- - remaining unpushed commits or dirty state;
92
- - CI, review, integration, release, or deployment work not established by the push.
93
-
94
- A successful push proves transfer to the observed destination. It does not prove pull-request creation, merge, release, deployment, or remote CI success.
@@ -1,106 +0,0 @@
1
- # Staging Decisions
2
-
3
- Read this when staged, unstaged, or untracked changes have mixed ownership or concerns; a path contains both included and excluded work; existing staged ownership is uncertain; generated, durable, sensitive, or suspicious files appear; or narrowing may require changing existing staged state.
4
-
5
- This reference is judgment about classification, with binding stops for sensitive content, Working Records, and user-owned staged work. It determines what may enter the checkpoint. It does not establish commit authority, verification, review readiness, or permission to alter user-owned work.
6
-
7
- ## Classify The Changed Units
8
-
9
- Classify at the path level only when the whole path has one role. Otherwise classify individual hunks.
10
-
11
- - **Checkpoint content:** directly implements or proves the checkpoint claim.
12
- - **Required companion:** tests, documentation, schema, metadata, or generated output required for that same claim.
13
- - **Related but separable:** useful work that does not need to be preserved in this checkpoint.
14
- - **Unrelated or user-owned:** work outside the accepted outcome or whose ownership is not established.
15
- - **Sensitive or unsafe:** secrets, credentials, personal data, environment files, debug output, destructive state, or unexplained artifacts.
16
- - **Unclear:** content whose purpose, generator, ownership, or evidence relationship is not yet supported.
17
-
18
- Only checkpoint content and required companions belong.
19
-
20
- A broad request such as "commit everything" may authorize broad inclusion, but it does not remove the obligation to inspect unsafe, unclear, or unexpectedly unrelated content.
21
-
22
- ## Protect Existing Staged State
23
-
24
- Existing staged changes may belong to another workflow.
25
-
26
- Inspect them, but do not infer that they are intended merely because they are staged. Do not silently:
27
-
28
- - absorb them into the checkpoint;
29
- - unstage or reset them;
30
- - amend them into another commit;
31
- - move them through a stash or temporary commit;
32
- - replace the index or use index tricks to bypass ownership ambiguity.
33
-
34
- When intended and pre-existing staged work cannot be separated without manipulating ambiguous state, present the smallest safe options and ask which checkpoint the user wants.
35
-
36
- ## Handle Partial Files Carefully
37
-
38
- A file may contain both checkpoint and excluded hunks. Stage only the intended hunks when their behavior and evidence remain independently coherent.
39
-
40
- Stop when:
41
-
42
- - included and excluded hunks depend on each other;
43
- - partial staging would produce an invalid intermediate state;
44
- - verification ran against the combined working tree and excluded changes may have affected the result;
45
- - the staged version differs materially from the state that was reviewed or verified.
46
-
47
- Do not claim an isolated staged checkpoint is supported merely because the combined dirty worktree passed.
48
-
49
- ## Include Generated Files Deliberately
50
-
51
- Include generated files, snapshots, lockfiles, formatter output, or build artifacts only when repository convention or the accepted outcome requires them.
52
-
53
- Establish:
54
-
55
- - which command or generator produced them;
56
- - whether their changes are expected from the accepted source change;
57
- - whether they are deterministic enough to review;
58
- - whether hand edits are prohibited;
59
- - whether their verification belongs to the checkpoint evidence.
60
-
61
- Do not include generated output merely because it changed. Do not hand-edit it unless the repository explicitly expects that workflow.
62
-
63
- ## Preserve Durable Artifacts Honestly
64
-
65
- A Spec, Plan, ADR, policy, public documentation file, or release artifact may have authority and maintenance rules independent of implementation.
66
-
67
- Include it only when:
68
-
69
- - its change is explicitly covered;
70
- - it belongs to the same coherent checkpoint;
71
- - it describes the same accepted behavior;
72
- - its own maintenance policy permits the update.
73
-
74
- Do not edit a durable artifact merely to make implementation appear coherent. Return contradictions to [Workflow](../../workflow/SKILL.md).
75
-
76
- Working Records under `.freeflow/tasks/**` are ignored local memory and must never be staged or committed.
77
-
78
- ## Reject Sensitive Or Suspicious Content
79
-
80
- Stop before staging:
81
-
82
- - secrets, tokens, credentials, private keys, or local environment files;
83
- - databases, dumps, recordings, or personal data;
84
- - unexplained binaries or generated archives;
85
- - logs, traces, screenshots, or debug output not explicitly required;
86
- - destructive state or files whose inclusion could expose or lose user data.
87
-
88
- Do not "clean up" suspicious files by deleting or discarding them. Preserve their state and report the exact paths.
89
-
90
- ## Verify The Candidate
91
-
92
- After staging, compare all three states:
93
-
94
- ```bash
95
- git diff --cached
96
- git diff
97
- git status --short --branch
98
- ```
99
-
100
- The checkpoint is narrow only when:
101
-
102
- - the index contains exactly the intended checkpoint;
103
- - excluded work remains untouched;
104
- - remaining dirty state is understood;
105
- - verification still supports the staged version rather than only the combined worktree;
106
- - the final report can name everything left behind.