get2knowio / get2knowio/maverick

tech debt: use explicit __init__ signatures in FlyBeadsWorkflow and RefuelSpeckitWorkflow

Open
#62 0 comments 0 reactions 0 assignees View on GitHub
tech-debt
Dominant language
Python
Stars
4
Forks
0
Avg merge
17h 37m
Merged PRs (30d)
7

Description

## Problem

`FlyBeadsWorkflow` still uses an opaque `**kwargs` constructor that hides its actual parameter contract from IDEs, mypy, and callers:

```python
# src/maverick/workflows/fly_beads/workflow.py
def __init__(self, **kwargs: Any) -> None:
self._checkpoint_store = kwargs.pop("checkpoint_store", None)
workflow_name = kwargs.pop("workflow_name", WORKFLOW_NAME)
super().__init__(workflow_name=workflow_name, **kwargs)
```

This pattern loses IDE autocompletion, prevents mypy from catching wrong argument types at call sites, and makes the constructor API opaque to new contributors.

(`RefuelSpeckitWorkflow` — originally co-mentioned in this issue — was removed during the speckit/refuel consolidation. `RefuelMaverickWorkflow` already has explicit kwargs.)

## Suggested fix

Declare explicit keyword-only parameters matching `PythonWorkflow.__init__`. Example shape:

```python
def __init__(
self,
*,
config: MaverickConfig,
registry: ComponentRegistry,
checkpoint_store: CheckpointStore | None = None,
workflow_name: str = WORKFLOW_NAME,
) -> None:
self._checkpoint_store = checkpoint_store
super().__init__(
config=config,
registry=registry,
workflow_name=workflow_name,
)
```

## Impact

No behaviour change. All existing tests should pass unchanged.

## Origin

Originally filed during code review of branch `035-python-workflow` (review item L2). Updated 2026-05-26 to reflect substrate after the Burr migration.

Contributor guide

Open the contributing guide

Research direction

Start in src/maverick/workflows/fly_beads/workflow.py and inspect PythonWorkflow.__init__ to confirm the parameter contract. Replace FlyBeadsWorkflow's opaque constructor with explicit keyword-only parameters, then run the existing test suite; done means the signature is visible to IDEs and type checkers with no behavior changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.