@hassangameryt/freeflow 0.1.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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +22 -0
- package/LICENSE +21 -0
- package/README.md +217 -0
- package/package.json +53 -0
- package/plugins/freeflow/.claude-plugin/plugin.json +20 -0
- package/plugins/freeflow/.codex-plugin/plugin.json +44 -0
- package/plugins/freeflow/assets/freeflow-plugin-icon-transparent.png +0 -0
- package/plugins/freeflow/command-surface.json +85 -0
- package/plugins/freeflow/docs/README.md +39 -0
- package/plugins/freeflow/docs/adr/0001-three-modes.md +27 -0
- package/plugins/freeflow/docs/adr/0002-evals-before-hooks.md +17 -0
- package/plugins/freeflow/docs/adr/0003-release-boundary.md +21 -0
- package/plugins/freeflow/docs/adr/README.md +7 -0
- package/plugins/freeflow/docs/architecture.md +86 -0
- package/plugins/freeflow/docs/release-evidence.md +49 -0
- package/plugins/freeflow/docs/skills.md +44 -0
- package/plugins/freeflow/docs/workflow.md +57 -0
- package/plugins/freeflow/hooks/freeflow-runtime-context.mjs +240 -0
- package/plugins/freeflow/hooks/hooks.json +18 -0
- package/plugins/freeflow/pi-extension/index.js +250 -0
- package/plugins/freeflow/skills/bypass/SKILL.md +68 -0
- package/plugins/freeflow/skills/capture-decisions/SKILL.md +95 -0
- package/plugins/freeflow/skills/capture-decisions/references/destination-guide.md +65 -0
- package/plugins/freeflow/skills/commit-work/SKILL.md +97 -0
- package/plugins/freeflow/skills/commit-work/references/staging-decisions.md +51 -0
- package/plugins/freeflow/skills/diagnose-failure/SKILL.md +95 -0
- package/plugins/freeflow/skills/diagnose-failure/references/feedback-loop-catalog.md +25 -0
- package/plugins/freeflow/skills/diagnose-failure/references/flaky-and-performance.md +31 -0
- package/plugins/freeflow/skills/evaluate-skill/SKILL.md +96 -0
- package/plugins/freeflow/skills/evaluate-skill/references/eval-patterns.md +41 -0
- package/plugins/freeflow/skills/evaluate-skill/references/grading-priority.md +33 -0
- package/plugins/freeflow/skills/execute-plan/SKILL.md +67 -0
- package/plugins/freeflow/skills/grill-context/SKILL.md +79 -0
- package/plugins/freeflow/skills/grill-context/references/approach-framing.md +52 -0
- package/plugins/freeflow/skills/handoff/SKILL.md +66 -0
- package/plugins/freeflow/skills/handoff/references/templates.md +64 -0
- package/plugins/freeflow/skills/interview-gate/SKILL.md +90 -0
- package/plugins/freeflow/skills/mode-contract/SKILL.md +79 -0
- package/plugins/freeflow/skills/research-brief/SKILL.md +69 -0
- package/plugins/freeflow/skills/review-artifact/SKILL.md +82 -0
- package/plugins/freeflow/skills/review-artifact/references/reviewer-prompt.md +45 -0
- package/plugins/freeflow/skills/review-work/SKILL.md +73 -0
- package/plugins/freeflow/skills/review-work/references/reviewer-prompt.md +89 -0
- package/plugins/freeflow/skills/setup-freeflow/SKILL.md +84 -0
- package/plugins/freeflow/skills/setup-freeflow/references/activation-contract.md +94 -0
- package/plugins/freeflow/skills/setup-freeflow/references/host-setup.md +33 -0
- package/plugins/freeflow/skills/verify-work/SKILL.md +62 -0
- package/plugins/freeflow/skills/workflow/SKILL.md +87 -0
- package/plugins/freeflow/skills/workflow/references/workflow-map.md +103 -0
- package/plugins/freeflow/skills/write-plan/SKILL.md +88 -0
- package/plugins/freeflow/skills/write-plan/references/plan-shapes.md +70 -0
- package/plugins/freeflow/skills/write-skill/SKILL.md +88 -0
- package/plugins/freeflow/skills/write-spec/SKILL.md +90 -0
- package/plugins/freeflow/skills/write-spec/references/artifact-standards.md +67 -0
- package/plugins/freeflow/skills/write-spec/references/spec-shapes.md +69 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "freeflow",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "Freeflow"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "freeflow",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugins/freeflow"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Coding"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
+
"name": "freeflow",
|
|
4
|
+
"description": "Lightweight workflow for coding agents.",
|
|
5
|
+
"owner": {
|
|
6
|
+
"name": "Hassan Mohiddin",
|
|
7
|
+
"url": "https://github.com/hassan-mohiddin"
|
|
8
|
+
},
|
|
9
|
+
"plugins": [
|
|
10
|
+
{
|
|
11
|
+
"name": "freeflow",
|
|
12
|
+
"description": "Conversation, workflow, and strict-workflow skills for coding agents.",
|
|
13
|
+
"version": "0.1.0",
|
|
14
|
+
"category": "development",
|
|
15
|
+
"source": "./plugins/freeflow",
|
|
16
|
+
"author": {
|
|
17
|
+
"name": "Hassan Mohiddin"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/hassan-mohiddin/freeflow"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Hassan Mohiddin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Freeflow
|
|
2
|
+
|
|
3
|
+
Lightweight workflow for coding agents.
|
|
4
|
+
|
|
5
|
+
Agent workflow tools tend to choose one side of the problem: sharp point skills, full lifecycle methodology, or enforcement-heavy runtimes. The missing layer is a small workflow spine that prevents silent product decisions, source-truth rewrites, fake verification, and messy handoffs without turning every change into a process operating system.
|
|
6
|
+
|
|
7
|
+
## Workflow
|
|
8
|
+
|
|
9
|
+
Freeflow is a workflow layer, not a new agent. It helps the agent choose the right amount of process for the task.
|
|
10
|
+
|
|
11
|
+
### Modes
|
|
12
|
+
|
|
13
|
+
- `conversation`: answer, explain, critique, or explore without workflow pressure.
|
|
14
|
+
- `workflow`: default for consequential work; use the workflow spine and scale detail to risk.
|
|
15
|
+
- `strict-workflow`: high-risk or hard-to-reverse work with stronger gates.
|
|
16
|
+
|
|
17
|
+
Use strict-workflow for security, privacy, billing, public APIs, migrations, data loss, compatibility, permissions, deployment, or irreversible architecture.
|
|
18
|
+
|
|
19
|
+
### Map
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
flowchart LR
|
|
23
|
+
Request{request}
|
|
24
|
+
Talk[conversation<br/>answer directly]
|
|
25
|
+
Discover[discover<br/>research / grill]
|
|
26
|
+
Spec[spec]
|
|
27
|
+
Plan[plan]
|
|
28
|
+
Build[build<br/>execute / diagnose]
|
|
29
|
+
Check[review + verify]
|
|
30
|
+
Close[commit / handoff]
|
|
31
|
+
|
|
32
|
+
Request -->|question| Talk
|
|
33
|
+
Request -->|work| Discover
|
|
34
|
+
Discover --> Spec --> Plan --> Build --> Check --> Close
|
|
35
|
+
Check -. new evidence or failed check .-> Discover
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The map is orienting, not mandatory. Small reversible work can skip unnecessary artifacts and gates.
|
|
39
|
+
|
|
40
|
+
### Backward Edge
|
|
41
|
+
|
|
42
|
+
Loop back when new evidence changes the path:
|
|
43
|
+
|
|
44
|
+
```mermaid
|
|
45
|
+
flowchart LR
|
|
46
|
+
Trigger{new evidence<br/>conflict<br/>failed check<br/>owner decision}
|
|
47
|
+
Decide{changes<br/>next action?}
|
|
48
|
+
Continue[continue]
|
|
49
|
+
Reenter[clarify / research<br/>revise spec or plan<br/>diagnose / split / stop]
|
|
50
|
+
|
|
51
|
+
Trigger --> Decide
|
|
52
|
+
Decide -->|no| Continue
|
|
53
|
+
Decide -->|yes| Reenter
|
|
54
|
+
Reenter -. resume .-> Decide
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The agent should not silently choose the backward destination when the choice changes product behavior, scope, compatibility, public APIs, security, privacy, billing, data loss, permissions, or irreversible architecture.
|
|
58
|
+
|
|
59
|
+
### Bypass
|
|
60
|
+
|
|
61
|
+
Bypass skips ceremony, not judgment.
|
|
62
|
+
|
|
63
|
+
Use `bypass` only to skip an unnecessary gate. It does not skip user-owned decisions, source-truth conflicts, risky checks, or fresh verification before completion claims.
|
|
64
|
+
|
|
65
|
+
## Install
|
|
66
|
+
|
|
67
|
+
### Codex
|
|
68
|
+
|
|
69
|
+
Register the GitHub repo as a Codex marketplace, refresh it, then install Freeflow:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
codex plugin marketplace add https://github.com/hassan-mohiddin/freeflow.git
|
|
73
|
+
codex plugin marketplace upgrade freeflow
|
|
74
|
+
codex plugin add freeflow@freeflow
|
|
75
|
+
codex plugin list | rg freeflow
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
In the Codex app, add the same GitHub marketplace URL from `/plugins`, then search for `freeflow`.
|
|
79
|
+
|
|
80
|
+
### Claude Code
|
|
81
|
+
|
|
82
|
+
Register the marketplace:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
/plugin marketplace add hassan-mohiddin/freeflow
|
|
86
|
+
/plugin install freeflow
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Or install directly from GitHub:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
/plugin install hassan-mohiddin/freeflow
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Pi Coding Agent
|
|
96
|
+
|
|
97
|
+
Install Freeflow as a native Pi package from npm:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
pi install npm:@hassangameryt/freeflow
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Or install directly from GitHub:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pi install git:github.com/hassan-mohiddin/freeflow
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
For local development from this checkout:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pi install .
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The Pi package exposes Freeflow skills and a small extension that registers direct Freeflow commands and loads workflow skill/map context before agent turns.
|
|
116
|
+
|
|
117
|
+
### Required Step 1: Run Setup
|
|
118
|
+
|
|
119
|
+
**Run this in every repo after installing Freeflow:**
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
/setup-freeflow
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Setup creates the repo activation file and `.freeflow/config.json`. It does not create repo-local hooks, docs inventories, state files, handoffs, or `.codex/rules` behavior files.
|
|
126
|
+
|
|
127
|
+
After successful setup, the setup skill reads the workflow skill and workflow map before its final response so the current session can continue with Freeflow loaded.
|
|
128
|
+
|
|
129
|
+
### Required Step 2: Enable Hooks
|
|
130
|
+
|
|
131
|
+
**In Codex, open the hooks screen and trust the Freeflow `SessionStart` hook:**
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
/hooks
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Press `t` to trust/enable the hook when Codex marks it as needing review.
|
|
138
|
+
|
|
139
|
+
Once enabled, the hook loads Freeflow workflow context at session start, resume, clear, and compact.
|
|
140
|
+
|
|
141
|
+
In Pi, Freeflow's package extension provides the context-loading hook through Pi lifecycle events. It refreshes workflow context on session start and compact, then injects it before agent turns. If you install it project-locally, trust the project when Pi prompts for project-local package resources.
|
|
142
|
+
|
|
143
|
+
These hooks do not run after every edit, block tools, grant permissions, or enforce workflow policy.
|
|
144
|
+
|
|
145
|
+
### Other Agents
|
|
146
|
+
|
|
147
|
+
Copy the `plugins/freeflow/skills/` directory into the agent's skills/plugin system and make sure the agent can read `SKILL.md` files with bundled `references/`.
|
|
148
|
+
|
|
149
|
+
## Usage
|
|
150
|
+
|
|
151
|
+
Use natural language first:
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
Use Freeflow workflow mode for this task.
|
|
155
|
+
Keep this in conversation mode.
|
|
156
|
+
Use strict-workflow for this billing change.
|
|
157
|
+
Verify before claiming completion.
|
|
158
|
+
Capture the durable decision.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Slash-style prompts are model-routed in v0.1:
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
/workflow conversation
|
|
165
|
+
/workflow workflow
|
|
166
|
+
/workflow strict-workflow
|
|
167
|
+
/workflow reset
|
|
168
|
+
/write-spec
|
|
169
|
+
/write-plan
|
|
170
|
+
/execute-plan
|
|
171
|
+
/verify-work
|
|
172
|
+
/commit-work
|
|
173
|
+
/handoff
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
For Codex and Claude, these commands work as skill-routing language. In Pi, the package extension registers native command handlers for Freeflow commands. Pi `/workflow` mode changes are session-scoped and update the footer; `.freeflow/config.json` remains the repo default only.
|
|
177
|
+
|
|
178
|
+
## Docs
|
|
179
|
+
|
|
180
|
+
- [Docs index](plugins/freeflow/docs/README.md)
|
|
181
|
+
- [Workflow](plugins/freeflow/docs/workflow.md)
|
|
182
|
+
- [Skills](plugins/freeflow/docs/skills.md)
|
|
183
|
+
- [Architecture](plugins/freeflow/docs/architecture.md)
|
|
184
|
+
- [Release evidence](plugins/freeflow/docs/release-evidence.md)
|
|
185
|
+
- [ADRs](plugins/freeflow/docs/adr/README.md)
|
|
186
|
+
|
|
187
|
+
## Evidence
|
|
188
|
+
|
|
189
|
+
Freeflow does not claim to beat Matt Pocock's skills or Obra's Superpowers. Those are references for skill sharpness and lifecycle discipline. Current evals compare baseline agent behavior against Freeflow instructions/skills, then verify command coverage.
|
|
190
|
+
|
|
191
|
+
| Report | Baseline | With Freeflow | What It Shows |
|
|
192
|
+
| --- | ---: | ---: | --- |
|
|
193
|
+
| v0.1 acceptance suite | - | 15/15 pass | Required release behaviors passed after measured fixes. |
|
|
194
|
+
| Always-on source-truth conflict | 2/10 | 10/10 | Freeflow stopped a pressured billing rewrite, made no edits, named the conflict, and asked for the policy decision. |
|
|
195
|
+
| Write spec from stale handoff | 4/10 | 10/10 | Freeflow refused to supersede billing policy from stale handoff text. |
|
|
196
|
+
| Write plan with hidden billing decision | 4/10 | 10/10 | Freeflow created no plan, named the policy conflict, and asked which path to follow. |
|
|
197
|
+
| Cold spec call without context | 2/10 | 10/10 | Freeflow did not invent onboarding behavior from adjacent files. |
|
|
198
|
+
| Workflow context lifecycle | fail | pass | Setup loads workflow context for the same session; session-start hooks load workflow context without `PostToolUse`. |
|
|
199
|
+
| Command surface audit | - | Pass | 3 mode commands, 13 direct skill calls, and 2 developer skill calls are covered while native slash handlers remain disabled. |
|
|
200
|
+
|
|
201
|
+
Eval sources and reports live with the plugin under `plugins/freeflow/evals/`; generated run output is ignored. Concise release evidence is summarized in [plugins/freeflow/docs/release-evidence.md](plugins/freeflow/docs/release-evidence.md).
|
|
202
|
+
|
|
203
|
+
## What Freeflow Is Not
|
|
204
|
+
|
|
205
|
+
- Not a new agent.
|
|
206
|
+
- Not a CLI framework.
|
|
207
|
+
- Not an enforcement hook system.
|
|
208
|
+
- Not old Orchestra with a smaller README.
|
|
209
|
+
- Not a replacement for Matt's skills or Superpowers.
|
|
210
|
+
|
|
211
|
+
The shipped hooks are context-loading only. They do not enforce policy, block tools, or replace repo instructions.
|
|
212
|
+
|
|
213
|
+
Freeflow is the lightweight workflow layer between point skills and full process systems.
|
|
214
|
+
|
|
215
|
+
## License
|
|
216
|
+
|
|
217
|
+
MIT License. Copyright (c) 2026 Hassan Mohiddin.
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hassangameryt/freeflow",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Lightweight workflow for coding agents.",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "Hassan Mohiddin"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/hassan-mohiddin/freeflow",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/hassan-mohiddin/freeflow.git"
|
|
15
|
+
},
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"type": "module",
|
|
18
|
+
"keywords": [
|
|
19
|
+
"pi-package",
|
|
20
|
+
"agent-skills",
|
|
21
|
+
"workflow",
|
|
22
|
+
"skills",
|
|
23
|
+
"agents",
|
|
24
|
+
"planning",
|
|
25
|
+
"verification",
|
|
26
|
+
"codex",
|
|
27
|
+
"claude",
|
|
28
|
+
"pi"
|
|
29
|
+
],
|
|
30
|
+
"pi": {
|
|
31
|
+
"skills": [
|
|
32
|
+
"plugins/freeflow/skills"
|
|
33
|
+
],
|
|
34
|
+
"extensions": [
|
|
35
|
+
"plugins/freeflow/pi-extension/index.js"
|
|
36
|
+
],
|
|
37
|
+
"image": "https://raw.githubusercontent.com/hassan-mohiddin/freeflow/main/plugins/freeflow/assets/freeflow-plugin-icon-transparent.png"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
".agents/**",
|
|
41
|
+
".claude-plugin/**",
|
|
42
|
+
"LICENSE",
|
|
43
|
+
"README.md",
|
|
44
|
+
"plugins/freeflow/.claude-plugin/**",
|
|
45
|
+
"plugins/freeflow/.codex-plugin/**",
|
|
46
|
+
"plugins/freeflow/assets/**",
|
|
47
|
+
"plugins/freeflow/command-surface.json",
|
|
48
|
+
"plugins/freeflow/docs/**",
|
|
49
|
+
"plugins/freeflow/hooks/**",
|
|
50
|
+
"plugins/freeflow/pi-extension/**",
|
|
51
|
+
"plugins/freeflow/skills/**"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "freeflow",
|
|
3
|
+
"description": "Lightweight workflow for coding agents. Conversation, workflow, and strict-workflow skills for planning, execution, review, verification, handoff, and decision capture.",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Hassan Mohiddin"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://github.com/hassan-mohiddin/freeflow",
|
|
9
|
+
"repository": "https://github.com/hassan-mohiddin/freeflow",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"workflow",
|
|
13
|
+
"skills",
|
|
14
|
+
"agents",
|
|
15
|
+
"planning",
|
|
16
|
+
"verification",
|
|
17
|
+
"claude-code",
|
|
18
|
+
"codex"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "freeflow",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Lightweight workflow for coding agents.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Hassan Mohiddin"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://github.com/hassan-mohiddin/freeflow",
|
|
9
|
+
"repository": "https://github.com/hassan-mohiddin/freeflow",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"workflow",
|
|
13
|
+
"skills",
|
|
14
|
+
"agents",
|
|
15
|
+
"planning",
|
|
16
|
+
"verification",
|
|
17
|
+
"codex",
|
|
18
|
+
"claude"
|
|
19
|
+
],
|
|
20
|
+
"skills": "./skills/",
|
|
21
|
+
"interface": {
|
|
22
|
+
"displayName": "Freeflow",
|
|
23
|
+
"shortDescription": "Lightweight workflow for coding agents.",
|
|
24
|
+
"longDescription": "Freeflow guides coding agents through conversation, workflow, and strict-workflow modes with interview gates, source-truth checks, planning, execution, review, verification, commit discipline, handoffs, and durable decision capture.",
|
|
25
|
+
"developerName": "Hassan Mohiddin",
|
|
26
|
+
"category": "Coding",
|
|
27
|
+
"capabilities": [
|
|
28
|
+
"Interactive",
|
|
29
|
+
"Read",
|
|
30
|
+
"Write"
|
|
31
|
+
],
|
|
32
|
+
"defaultPrompt": [
|
|
33
|
+
"Use Freeflow workflow mode for this task.",
|
|
34
|
+
"Keep this in conversation mode.",
|
|
35
|
+
"Use strict-workflow for this risky change."
|
|
36
|
+
],
|
|
37
|
+
"websiteURL": "https://github.com/hassan-mohiddin/freeflow",
|
|
38
|
+
"privacyPolicyURL": "https://github.com/hassan-mohiddin/freeflow/blob/main/README.md",
|
|
39
|
+
"termsOfServiceURL": "https://github.com/hassan-mohiddin/freeflow/blob/main/LICENSE",
|
|
40
|
+
"brandColor": "#2563EB",
|
|
41
|
+
"composerIcon": "./assets/freeflow-plugin-icon-transparent.png",
|
|
42
|
+
"logo": "./assets/freeflow-plugin-icon-transparent.png"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"nativeSlashHandlers": false,
|
|
3
|
+
"modeCommands": [
|
|
4
|
+
{
|
|
5
|
+
"command": "/workflow conversation",
|
|
6
|
+
"routesTo": "mode-contract"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"command": "/workflow workflow",
|
|
10
|
+
"routesTo": "mode-contract"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"command": "/workflow strict-workflow",
|
|
14
|
+
"routesTo": "mode-contract"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"command": "/workflow reset",
|
|
18
|
+
"routesTo": "mode-contract"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"directSkillCalls": [
|
|
22
|
+
{
|
|
23
|
+
"command": "/grill-context",
|
|
24
|
+
"skill": "grill-context"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"command": "/research-brief",
|
|
28
|
+
"skill": "research-brief"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"command": "/write-spec",
|
|
32
|
+
"skill": "write-spec"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"command": "/review-artifact",
|
|
36
|
+
"skill": "review-artifact"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"command": "/write-plan",
|
|
40
|
+
"skill": "write-plan"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"command": "/execute-plan",
|
|
44
|
+
"skill": "execute-plan"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"command": "/diagnose-failure",
|
|
48
|
+
"skill": "diagnose-failure"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"command": "/verify-work",
|
|
52
|
+
"skill": "verify-work"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"command": "/review-work",
|
|
56
|
+
"skill": "review-work"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"command": "/commit-work",
|
|
60
|
+
"skill": "commit-work"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"command": "/capture-decisions",
|
|
64
|
+
"skill": "capture-decisions"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"command": "/handoff",
|
|
68
|
+
"skill": "handoff"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"command": "/bypass",
|
|
72
|
+
"skill": "bypass"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"developerSkillCalls": [
|
|
76
|
+
{
|
|
77
|
+
"command": "/write-skill",
|
|
78
|
+
"skill": "write-skill"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"command": "/evaluate-skill",
|
|
82
|
+
"skill": "evaluate-skill"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Freeflow Docs
|
|
2
|
+
|
|
3
|
+
These docs describe the public plugin behavior. Historical research stays in root `docs/`; eval sources and reports live under `plugins/freeflow/evals/`.
|
|
4
|
+
|
|
5
|
+
After installing Freeflow, run setup in each repo where you want it active:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
/setup-freeflow
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Setup creates activation/config files only.
|
|
12
|
+
|
|
13
|
+
In Codex, open the hooks screen after install:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
/hooks
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Press `t` to trust/enable the Freeflow `SessionStart` hook when Codex marks it as needing review. Once enabled, plugin-bundled hooks load workflow and interview-gate context at session start, resume, clear, and compact.
|
|
20
|
+
|
|
21
|
+
In Pi, install Freeflow as a Pi package from npm:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pi install npm:@hassangameryt/freeflow
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Or install directly from GitHub:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pi install git:github.com/hassan-mohiddin/freeflow
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The package exposes `plugins/freeflow/skills/` and `plugins/freeflow/pi-extension/index.js`. The Pi extension registers direct Freeflow commands, keeps `/workflow` mode changes scoped to the Pi session, refreshes workflow and interview-gate context on session start and compact, and injects that context before agent turns. It does not enforce policy, block tools, grant permissions, or create repo-local hooks.
|
|
34
|
+
|
|
35
|
+
- [Workflow](workflow.md): modes, entry points, loops, and the compact workflow map.
|
|
36
|
+
- [Skills](skills.md): shipped skills and what each one is for.
|
|
37
|
+
- [Architecture](architecture.md): package layout, runtime boundary, context hooks, and progressive disclosure model.
|
|
38
|
+
- [Release evidence](release-evidence.md): v0.1 acceptance evidence and deferred checks.
|
|
39
|
+
- [ADRs](adr/README.md): durable release decisions.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ADR 0001: Three Modes
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted.
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
Freeflow has exactly three modes:
|
|
10
|
+
|
|
11
|
+
- `conversation`
|
|
12
|
+
- `workflow`
|
|
13
|
+
- `strict-workflow`
|
|
14
|
+
|
|
15
|
+
## Rationale
|
|
16
|
+
|
|
17
|
+
Three modes give users explicit process control without creating a mode for every task shape.
|
|
18
|
+
|
|
19
|
+
`conversation` removes workflow pressure for questions and discussion.
|
|
20
|
+
|
|
21
|
+
`workflow` is the default for consequential work.
|
|
22
|
+
|
|
23
|
+
`strict-workflow` exists for high-risk or hard-to-reverse work.
|
|
24
|
+
|
|
25
|
+
## Consequences
|
|
26
|
+
|
|
27
|
+
Freeflow must scale process inside these modes instead of adding new modes. Host permission modes remain separate from Freeflow workflow modes.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# ADR 0002: Evals Before Enforcement Hooks
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted.
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
Freeflow v0.1 ships plugin-bundled context-loading runtime: Codex/Claude hooks and a Pi extension that load existing workflow and interview-gate context. It still ships without enforcement hooks or CLI enforcement. Behavior must first be proven with baseline-vs-with-skill evals before mechanical enforcement is added.
|
|
10
|
+
|
|
11
|
+
## Rationale
|
|
12
|
+
|
|
13
|
+
Context-loading runtime addresses a measured lifecycle gap: workflow and interview-gate context may not be present at session start. The setup skill handles the same-session setup case by reading runtime context after successful verification. Enforcement hooks can prevent expensive mistakes, but early enforcement machinery can hide weak skill wording and turn the package into brittle workflow infrastructure.
|
|
14
|
+
|
|
15
|
+
## Consequences
|
|
16
|
+
|
|
17
|
+
Native enforcement remains future work. Enforcement hooks should be added only when a repeated failure is concrete, deterministic, and not solved by concise skill wording.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# ADR 0003: Release Boundary
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted.
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
Freeflow v0.1 ships as a marketplace repo with one plugin runtime under `plugins/freeflow/`.
|
|
10
|
+
|
|
11
|
+
The plugin runtime includes skills, bundled references, context-loading runtime, public docs, eval sources/reports, command-surface metadata, Codex/Claude metadata, and Pi package metadata/extension.
|
|
12
|
+
|
|
13
|
+
The runtime excludes generated eval run output, historical research notes, handoffs, enforcement hooks, CLI tools, and old Orchestra compatibility.
|
|
14
|
+
|
|
15
|
+
## Rationale
|
|
16
|
+
|
|
17
|
+
The public repo should be installable without generated artifacts or duplicate package copies. Eval definitions and concise reports stay near the skills they protect; generated run output stays ignored.
|
|
18
|
+
|
|
19
|
+
## Consequences
|
|
20
|
+
|
|
21
|
+
Release evidence is summarized in `release-evidence.md`. Generated eval run output remains ignored unless a future release intentionally publishes it.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Freeflow ADRs
|
|
2
|
+
|
|
3
|
+
Durable decisions for the public Freeflow package:
|
|
4
|
+
|
|
5
|
+
- [ADR 0001: Three Workflow Modes](0001-three-modes.md)
|
|
6
|
+
- [ADR 0002: Evals Before Enforcement Hooks](0002-evals-before-hooks.md)
|
|
7
|
+
- [ADR 0003: v0.1 Release Boundary](0003-release-boundary.md)
|