@paradigma-inc/flywheel 0.1.10 → 0.1.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paradigma-inc/flywheel",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "One-command setup for Flywheel MCP hosts",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: flywheel
3
- description: Use for Flywheel experiment design, MCP-assisted execution, and platform setup/troubleshooting across supported hosts.
3
+ description: Use for Flywheel experiment design, turning source material into Flywheel graphs, staged frontier planning with `/lookahead`, budgeted autonomous research with `/fsd`, MCP-assisted execution, and platform setup/troubleshooting across supported hosts.
4
4
  ---
5
5
 
6
6
  # Flywheel Skill
@@ -12,6 +12,9 @@ Use this skill to structure research work and to route setup/support questions t
12
12
  Use this skill when the conversation is about any of the following:
13
13
 
14
14
  - planning experiments, hypotheses, comparisons, or next-branch decisions
15
+ - turning source material into a Flywheel graph
16
+ - using command-like Flywheel workflows such as `/to-graph`, `/reproduce`,
17
+ `/lookahead`, or `/fsd`
15
18
  - running or interpreting empirical work in Flywheel
16
19
  - choosing between `insight` and `empirical` nodes
17
20
  - setting up, updating, authenticating, or troubleshooting Flywheel MCP
@@ -23,17 +26,23 @@ If the request is ambiguous, default to experiment-design guidance before platfo
23
26
 
24
27
  1. Classify the request as research guidance, platform support, or mixed.
25
28
  2. Load only the minimum files needed for the current task.
26
- 3. For research requests, run a short design pass before execution:
29
+ 3. If the user is using command-like language such as `/to-graph`,
30
+ `/reproduce`, `/lookahead`, or `/fsd`, load
31
+ `reference/command-presets.md` first.
32
+ 4. For research requests, run a short design pass before execution:
27
33
  ask 1-2 questions to clarify objective, assumptions, and decision criteria.
28
- 4. If design is solid and the user wants to proceed, shift to execution support.
29
- 5. Use Flywheel MCP tools for live behavior/contract checks when available.
30
- 6. Summarize evidence and propose the most likely next branch.
34
+ 5. If design is solid and the user wants to proceed, shift to execution support.
35
+ 6. Use Flywheel MCP tools for live behavior/contract checks when available.
36
+ 7. Summarize evidence and propose the most likely next branch.
31
37
 
32
38
  ## Routing Map
33
39
 
34
40
  Choose one primary file first, then add at most one supporting file only if needed:
35
41
 
36
42
  - `reference/experiment-design-protocol.md` for structured experiment design and readiness checks
43
+ - `reference/command-presets.md` for `/to-graph`, `/reproduce`, `/lookahead`,
44
+ and `/fsd`
45
+ - `reference/wiki-porting.md` when the user asks to port a markdown/wiki corpus
37
46
  - `reference/flywheel-mcp-tool-map.md` for exact tool surface and contract behavior
38
47
  - `getting-started/flywheel-tutorial-overview.md` for orientation and learning path
39
48
  - `getting-started/flywheel-quickstart.md` for fastest first-use setup and auth recovery
@@ -50,3 +59,12 @@ Choose one primary file first, then add at most one supporting file only if need
50
59
  - Prefer concrete steps and decision points over long narrative explanations.
51
60
  - Do not run broad document reads; load only what is required by the current request.
52
61
  - Do not start compute-heavy execution before design intent is clear.
62
+ - Keep `/reproduce` narrow: validate existing knowledge claims rather than
63
+ expanding an open-ended research frontier.
64
+ - Treat `/lookahead` as planning only and `/fsd` as budgeted autonomous
65
+ frontier advancement.
66
+
67
+ ## Wiki Porting
68
+
69
+ When asked to port a markdown wiki, load `reference/wiki-porting.md` before
70
+ acting.
@@ -1,7 +1,7 @@
1
1
  interface:
2
2
  display_name: "Flywheel"
3
- short_description: "Guide Flywheel experiment design, setup, tools, and workflows"
4
- default_prompt: "Use $flywheel to answer Flywheel experiment, setup, MCP tool, compute, campaign, or Web UI questions."
3
+ short_description: "Guide Flywheel graph planning, research, and setup"
4
+ default_prompt: "Use $flywheel to answer Flywheel experiment, graph, setup, MCP tool, compute, campaign, or Web UI questions. Treat /to-graph as graph construction only, /reproduce as budgeted validation of existing knowledge, /lookahead as staged frontier planning, and /fsd as budgeted autonomous frontier advancement that stays n steps ahead."
5
5
 
6
6
  dependencies:
7
7
  tools:
@@ -0,0 +1,230 @@
1
+ # Command Presets
2
+
3
+ Use this guide when the user frames the request as `/to-graph`,
4
+ `/reproduce`, `/lookahead`, `/fsd`, or equivalent command-like language.
5
+
6
+ These are workflow presets inside the Flywheel skill. They are not separate
7
+ product surfaces.
8
+
9
+ ## `/to-graph`
10
+
11
+ Use `/to-graph` when the user's main goal is to convert unstructured source
12
+ material into a Flywheel graph.
13
+
14
+ Typical inputs:
15
+
16
+ - paper
17
+ - blogpost
18
+ - README
19
+ - markdown wiki
20
+ - research notes
21
+
22
+ Output contract:
23
+
24
+ - create or update a root node or subtree
25
+ - put the primary narrative in node `content`
26
+ - attach supporting files as artifacts
27
+ - add only durable graph edges
28
+
29
+ Execution policy:
30
+
31
+ - do not acquire compute by default
32
+ - do not spend budget implicitly
33
+ - execution only happens if the user explicitly asks to run branches
34
+
35
+ Default mapping:
36
+
37
+ - stable page or concept -> one node
38
+ - main markdown/text -> `content`
39
+ - short synopsis -> `summary`
40
+ - figures, PDFs, datasets, notebooks, code, tables -> artifacts
41
+ - durable semantic relationships -> edges
42
+ - ordinary hyperlinks or citations -> remain in markdown unless they deserve an
43
+ actual graph relationship
44
+
45
+ ## `/reproduce`
46
+
47
+ Use `/reproduce` when the source is claim-bearing and the user wants Flywheel
48
+ to both structure the source and run empirical validation.
49
+
50
+ `/reproduce` is conceptually:
51
+
52
+ ```text
53
+ /to-graph --mode reproduce --execute
54
+ ```
55
+
56
+ That means:
57
+
58
+ 1. graphify the source first
59
+ 2. split it into explicit validation branches
60
+ 3. execute those branches within a hard maximum budget
61
+
62
+ Typical sources:
63
+
64
+ - research papers
65
+ - benchmark claims
66
+ - blogposts with strong empirical claims
67
+ - replication requests on an existing Flywheel graph
68
+
69
+ Budget semantics:
70
+
71
+ - a max budget is a hard ceiling, not a soft preference
72
+ - if no max budget is given, ask for one before any compute acquisition
73
+ - until the budget is explicit, planning and graph construction may proceed, but
74
+ empirical execution should not start
75
+ - prefer the highest-information, lowest-cost branches first
76
+ - stop when the claim is resolved or the budget limit is reached
77
+
78
+ Default branch types:
79
+
80
+ - baseline sanity check
81
+ - mechanism or intermediate-signal check
82
+ - ablation
83
+ - efficiency or overhead check
84
+ - robustness or failure-mode check
85
+ - follow-up analysis branch after results land
86
+
87
+ ## `/lookahead`
88
+
89
+ Use `/lookahead` when the user wants Flywheel to plan the next frontier of work
90
+ from an existing set of nodes without executing it yet.
91
+
92
+ `/lookahead` is conceptually:
93
+
94
+ ```text
95
+ /plan-frontier --execute=false
96
+ ```
97
+
98
+ That means:
99
+
100
+ 1. resolve a starting set of Flywheel nodes
101
+ 2. resolve a measurable objective for those nodes
102
+ 3. expand the frontier into staged next-step nodes
103
+
104
+ Starting-node policy:
105
+
106
+ - prefer explicit node ids, slugs, or directly named nodes
107
+ - otherwise use the focused or recently referenced graph context
108
+ - if no stable starting set can be recovered, ask
109
+
110
+ Objective policy:
111
+
112
+ - if the objective is missing, ask for one
113
+ - if the user insists on not specifying it, infer the objective from the graph
114
+ context and state it explicitly before planning
115
+ - the objective must be measurable enough to rank frontier branches
116
+
117
+ Lookahead policy:
118
+
119
+ - depth `n` means plan `n` hops ahead from the currently resolved frontier
120
+ - default `n=1`
121
+ - width `k` means expand up to `k` non-redundant frontier directions
122
+ - avoid redundant siblings that only restate the same branch with different
123
+ wording
124
+
125
+ Node-typing policy:
126
+
127
+ - if a planned node is expected to produce evidence or artifacts, type it
128
+ `empirical`
129
+ - otherwise type it `insight`
130
+ - leave planned nodes staged until the underlying work has a resolution
131
+
132
+ Output contract:
133
+
134
+ - create or update a graph-local planning contract
135
+ - write the objective, depth `n`, width `k`, and terminal condition into the
136
+ graph
137
+ - stage the next frontier of nodes without hidden execution
138
+
139
+ ## `/fsd`
140
+
141
+ Use `/fsd` ("full self-driving") when the user wants Flywheel to keep
142
+ advancing a research frontier autonomously under a specified budget.
143
+
144
+ `/fsd` is conceptually:
145
+
146
+ ```text
147
+ /lookahead --execute --replan-after-each-resolution
148
+ ```
149
+
150
+ That means:
151
+
152
+ 1. resolve starting nodes
153
+ 2. resolve a measurable objective
154
+ 3. resolve a hard budget
155
+ 4. expand the frontier up to depth `n` and width `k`
156
+ 5. execute up to `k` frontier branches in parallel
157
+ 6. refresh the lookahead after each resolved node so the graph stays `n` hops
158
+ ahead
159
+
160
+ Budget semantics:
161
+
162
+ - credits are the default budget unit unless the user specifies another
163
+ measurable budget semantic
164
+ - the budget is a hard ceiling, not a soft preference
165
+ - if no budget is given, ask before execution starts
166
+ - if the user supplies a non-credit budget unit, persist that exact unit in the
167
+ graph-local control contract
168
+
169
+ Objective policy:
170
+
171
+ - if the objective is missing, ask for one
172
+ - if the user refuses to specify it, infer it from the existing graph context
173
+ and state it explicitly before execution
174
+ - the objective must be precise enough that the model can decide whether a
175
+ branch is advancing or stalling it
176
+
177
+ Width and worker policy:
178
+
179
+ - `k` always means maximum distinct frontier directions
180
+ - in `/fsd`, that same `k` also caps concurrent workers
181
+ - if more than `k` worthwhile branches exist, route the extra branches in
182
+ sequence via the parent model
183
+
184
+ Termination policy:
185
+
186
+ - do not rely on new user feedback to decide whether to continue
187
+ - before execution, persist a graph-local terminal condition that later steps
188
+ can read directly from node state
189
+ - stop when the persisted condition is met, for example:
190
+ - objective reached
191
+ - hard budget exhausted
192
+ - no non-redundant frontier branch with positive expected value remains
193
+
194
+ Graph-maintenance policy:
195
+
196
+ - keep unresolved planned nodes staged
197
+ - commit nodes only when their work has a resolution
198
+ - empirical nodes should accumulate the expected evidence or artifact before
199
+ completion
200
+ - insight nodes should only be committed once the synthesis is actually known
201
+
202
+ ## Choosing Between Them
203
+
204
+ Use `/to-graph` when the user wants structure from source material.
205
+
206
+ Use `/reproduce` when the user wants structure plus budgeted validation of
207
+ existing knowledge.
208
+
209
+ Use `/lookahead` when the user wants staged next-step planning from existing
210
+ nodes.
211
+
212
+ Use `/fsd` when the user wants budgeted autonomous frontier advancement.
213
+
214
+ If a graph starts as `/lookahead`, `/fsd` should resume from the same graph and
215
+ keep it `n` steps ahead rather than planning from scratch each time.
216
+
217
+ ## Guardrails
218
+
219
+ - Do not hide spend behind `/to-graph`.
220
+ - Do not treat `/reproduce` as a magical bulk importer.
221
+ - Do not blur `/reproduce` and `/fsd`.
222
+ - `/reproduce` validates existing knowledge claims.
223
+ - `/fsd` expands the frontier to create new knowledge under budget.
224
+ - Build the graph explicitly with nodes, artifacts, and selected edges.
225
+ - Keep the source material legible in `content`; do not dump everything into
226
+ artifacts.
227
+ - Keep `/reproduce` scoped by cost and decision value, not by exhaustively
228
+ trying every possible branch.
229
+ - Keep `/fsd` graph-local: future continuation and stopping decisions should be
230
+ derivable from the persisted node state rather than from fresh chat context.
@@ -0,0 +1,92 @@
1
+ # Wiki Porting
2
+
3
+ Use this guide when the source material is a markdown wiki, README corpus, or a
4
+ Karpathy-style LLM wiki that should become Flywheel nodes.
5
+
6
+ ## Default Mapping
7
+
8
+ - One wiki page or stable concept -> one Flywheel node.
9
+ - The main page markdown -> the node body/readme field (`content`).
10
+ - A short synopsis of the page -> `summary`.
11
+ - Images, PDFs, datasets, notebooks, code snippets, and other supporting files
12
+ -> node artifacts.
13
+ - Durable structural relationships -> graph edges.
14
+ - Ordinary wiki hyperlinks -> remain markdown links inside the node body.
15
+
16
+ Do not try to preserve the source wiki as a file-first mirror inside Flywheel.
17
+ Flywheel is node-first.
18
+
19
+ ## What The Model Should Do
20
+
21
+ Assume the model is expected to perform the port directly unless the user
22
+ explicitly asks to build a dedicated importer.
23
+
24
+ That means:
25
+
26
+ 1. Read the source pages and supporting files.
27
+ 2. Create/update nodes explicitly.
28
+ 3. Write the page body into node `content`.
29
+ 4. Publish supporting files as artifacts.
30
+ 5. Add only the graph edges that materially help reasoning or navigation.
31
+
32
+ Do not wait for a magical "import this wiki" product surface if the available
33
+ Flywheel primitives are already enough.
34
+
35
+ ## `flywheel_import_subgraph`
36
+
37
+ Use `flywheel_import_subgraph` only when the input is already normalized into
38
+ Flywheel node JSON with DAG-safe edges.
39
+
40
+ Do not use it for raw markdown repositories because those are usually:
41
+
42
+ - file-centric rather than node-centric
43
+ - heavily cross-linked
44
+ - cyclic in ways that are natural for a wiki but not a clean Flywheel graph
45
+
46
+ Treat raw wiki content as authoring input, not as a direct subgraph payload.
47
+
48
+ ## Edge Policy
49
+
50
+ Promote a relation to a graph edge only when it carries durable meaning such as:
51
+
52
+ - hierarchy or decomposition
53
+ - prerequisite/dependency
54
+ - derived-from or result-of
55
+ - canonical comparison target
56
+
57
+ Do not create edges for every incidental mention, backlink, or navigational
58
+ cross-reference. Keep those inside the markdown body instead.
59
+
60
+ ## Inline Artifact Embeds
61
+
62
+ When the node body supports inline artifact rendering, keep references on their
63
+ own lines so the renderer can replace them with the matching artifact preview.
64
+
65
+ Examples:
66
+
67
+ ```md
68
+ ![Loss curve](loss-curve.png)
69
+
70
+ [Evaluation metrics](metrics.json)
71
+ ```
72
+
73
+ Guidelines:
74
+
75
+ - Upload the artifact first, then reference it from the body.
76
+ - Keep filenames stable enough for the renderer to match them.
77
+ - Use inline embeds for supporting visuals/data, but keep the main explanation
78
+ in the node body itself.
79
+ - If a reference does not match an artifact, it should remain valid markdown
80
+ rather than break the page.
81
+
82
+ ## Recommended Node Authoring Sequence
83
+
84
+ 1. Create the node with `flywheel_stage_node_create` if it does not exist.
85
+ 2. Read the latest node with `flywheel_get_node` before writes that need fresh
86
+ `expected_revision`.
87
+ 3. Stage node fields with `flywheel_stage_node_update`, putting the primary
88
+ markdown in `content`.
89
+ 4. Publish each supporting file with `flywheel_prepare_artifact_publish`.
90
+ 5. Add selected graph structure through the relevant graph tools when that
91
+ relationship matters.
92
+ 6. Commit once the node snapshot is coherent.