You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add whole-run and micro-batch async ETL scaffolds with atomic local run state, machine-readable receipts, explicit dry-run semantics, and agent-facing progress.
Document the architecture boundaries, examples, import contracts, and failure/cancellation observation behavior. Closes#147.
Copy file name to clipboardExpand all lines: .agents/skills/quantmind-dev/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: quantmind-dev
3
-
description: Contributor workflow for the QuantMind codebase. Covers contributor setup (environment + hooks), filing issues, commit format, pull request format, and component development across quantmind/ modules (knowledge, configs, preprocess, rag, flows, mind, utils) with tests, examples, and verification. Use when setting up as a contributor, filing an issue, committing, opening a PR, or implementing/refactoring QuantMind code.
3
+
description: Contributor workflow for the QuantMind codebase. Covers contributor setup (environment + hooks), filing issues, commit format, pull request format, and component development across quantmind/ modules (etl, knowledge, configs, preprocess, rag, flows, mind, utils) with tests, examples, and verification. Use when setting up as a contributor, filing an issue, committing, opening a PR, or implementing/refactoring QuantMind code.
Copy file name to clipboardExpand all lines: .agents/skills/quantmind-dev/references/develop-components.md
+27-4Lines changed: 27 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,14 +39,34 @@ apply throughout.
39
39
40
40
| Module | May import from `quantmind.*`|
41
41
|--------|-------------------------------|
42
+
|`quantmind/etl/`| nothing (independent leaf) |
42
43
|`quantmind/utils/`| nothing (leaf) |
43
44
|`quantmind/knowledge/`| nothing (leaf) |
44
45
|`quantmind/configs/`|`knowledge` only |
45
46
|`quantmind/preprocess/`|`utils` only |
46
47
|`quantmind/rag/`|`preprocess` only |
47
48
|`quantmind/library/`|`knowledge` only |
48
49
|`quantmind/mind/`|`knowledge`, `configs`, `utils` (retrieval is library-free; the `library` edge is reserved for the future collection path, not single-tree `retrieve`) |
49
-
|`quantmind/flows/`, `quantmind/magic.py`| apex — may import all of the above |
50
+
|`quantmind/flows/`, `quantmind/magic.py`| apex — may import domain layers above, but not the independent `etl` scaffold |
51
+
52
+
### `quantmind/etl/` — observable whole-run and micro-batch ETL
53
+
54
+
- Bind exactly three async stage callables to `ETLPipeline` for one whole-run
55
+
delivery. Use the parallel `BatchETLPipeline` when an async producer yields
56
+
business batches that each pass through transform and load. Never switch
57
+
execution shape by inspecting a callable's return value, and never hide batch
58
+
loads inside a whole-run transform.
59
+
- Use composition rather than an ABC, subclass tree, or inheritance between the
60
+
two pipeline classes. Keep batch execution strictly serial unless a later
61
+
observation contract explicitly represents simultaneously active stages.
62
+
- Keep it independent of every other `quantmind.*` package. Existing flows do
63
+
not inherit it; their pure `input → artifact` contract remains unchanged.
64
+
- Report only real completed work through `PipelineContext.progress()`. In batch
65
+
mode, only a load that returns successfully increments the completed-batch
66
+
count; partial-write safety remains the business load's responsibility. The
67
+
scaffold owns its local lifecycle snapshots; do not add custom run-state
68
+
files, a CLI, heartbeat, scheduler, retry policy, checkpoint/resume, or
69
+
workflow engine. See `contexts/design/operations/etl.md`.
50
70
51
71
### `quantmind/knowledge/` — data standard
52
72
@@ -144,10 +164,13 @@ apply throughout.
144
164
A public operation is complete only when all of these agree:
145
165
146
166
1. A stage and name consistent with `contexts/design/operations/naming.md`.
147
-
2. Typed input and config models, exported from `quantmind.configs`.
167
+
2. Typed input and config models, when the operation has them, exported from
168
+
the canonical owning package (`quantmind.configs` for flow configs,
169
+
`quantmind.etl` for ETL run contracts, or another explicit owner).
148
170
3. One intent-oriented async function, small service class, or document-scoped
149
-
handle exported from `quantmind.flows`, with its result contract exported
150
-
from the canonical owning layer.
171
+
handle exported from its canonical owning package (`quantmind.flows`,
172
+
`quantmind.etl`, `quantmind.library`, etc.), with its result contract
173
+
exported from the same owning layer.
151
174
4. Offline success and failure tests for the public callable, plus a
152
175
magic-introspection test when a function follows the `(input, *, cfg)`
Copy file name to clipboardExpand all lines: .claude/skills/quantmind-dev/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: quantmind-dev
3
-
description: Contributor workflow for the QuantMind codebase. Covers contributor setup (environment + hooks), filing issues, commit format, pull request format, and component development across quantmind/ modules (knowledge, configs, preprocess, rag, flows, mind, utils) with tests, examples, and verification. Use when setting up as a contributor, filing an issue, committing, opening a PR, or implementing/refactoring QuantMind code.
3
+
description: Contributor workflow for the QuantMind codebase. Covers contributor setup (environment + hooks), filing issues, commit format, pull request format, and component development across quantmind/ modules (etl, knowledge, configs, preprocess, rag, flows, mind, utils) with tests, examples, and verification. Use when setting up as a contributor, filing an issue, committing, opening a PR, or implementing/refactoring QuantMind code.
Copy file name to clipboardExpand all lines: .claude/skills/quantmind-dev/references/develop-components.md
+27-4Lines changed: 27 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,14 +39,34 @@ apply throughout.
39
39
40
40
| Module | May import from `quantmind.*`|
41
41
|--------|-------------------------------|
42
+
|`quantmind/etl/`| nothing (independent leaf) |
42
43
|`quantmind/utils/`| nothing (leaf) |
43
44
|`quantmind/knowledge/`| nothing (leaf) |
44
45
|`quantmind/configs/`|`knowledge` only |
45
46
|`quantmind/preprocess/`|`utils` only |
46
47
|`quantmind/rag/`|`preprocess` only |
47
48
|`quantmind/library/`|`knowledge` only |
48
49
|`quantmind/mind/`|`knowledge`, `configs`, `utils` (retrieval is library-free; the `library` edge is reserved for the future collection path, not single-tree `retrieve`) |
49
-
|`quantmind/flows/`, `quantmind/magic.py`| apex — may import all of the above |
50
+
|`quantmind/flows/`, `quantmind/magic.py`| apex — may import domain layers above, but not the independent `etl` scaffold |
51
+
52
+
### `quantmind/etl/` — observable whole-run and micro-batch ETL
53
+
54
+
- Bind exactly three async stage callables to `ETLPipeline` for one whole-run
55
+
delivery. Use the parallel `BatchETLPipeline` when an async producer yields
56
+
business batches that each pass through transform and load. Never switch
57
+
execution shape by inspecting a callable's return value, and never hide batch
58
+
loads inside a whole-run transform.
59
+
- Use composition rather than an ABC, subclass tree, or inheritance between the
60
+
two pipeline classes. Keep batch execution strictly serial unless a later
61
+
observation contract explicitly represents simultaneously active stages.
62
+
- Keep it independent of every other `quantmind.*` package. Existing flows do
63
+
not inherit it; their pure `input → artifact` contract remains unchanged.
64
+
- Report only real completed work through `PipelineContext.progress()`. In batch
65
+
mode, only a load that returns successfully increments the completed-batch
66
+
count; partial-write safety remains the business load's responsibility. The
67
+
scaffold owns its local lifecycle snapshots; do not add custom run-state
68
+
files, a CLI, heartbeat, scheduler, retry policy, checkpoint/resume, or
69
+
workflow engine. See `contexts/design/operations/etl.md`.
50
70
51
71
### `quantmind/knowledge/` — data standard
52
72
@@ -144,10 +164,13 @@ apply throughout.
144
164
A public operation is complete only when all of these agree:
145
165
146
166
1. A stage and name consistent with `contexts/design/operations/naming.md`.
147
-
2. Typed input and config models, exported from `quantmind.configs`.
167
+
2. Typed input and config models, when the operation has them, exported from
168
+
the canonical owning package (`quantmind.configs` for flow configs,
169
+
`quantmind.etl` for ETL run contracts, or another explicit owner).
148
170
3. One intent-oriented async function, small service class, or document-scoped
149
-
handle exported from `quantmind.flows`, with its result contract exported
150
-
from the canonical owning layer.
171
+
handle exported from its canonical owning package (`quantmind.flows`,
172
+
`quantmind.etl`, `quantmind.library`, etc.), with its result contract
173
+
exported from the same owning layer.
151
174
4. Offline success and failure tests for the public callable, plus a
152
175
magic-introspection test when a function follows the `(input, *, cfg)`
0 commit comments