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
Clear the code-quality debt that is currently blocking meaningful CI signal, fix a
confirmed runtime bug shipped in v1.1.0a2, and cut a patch release — so that
Phase 8 starts from a codebase where automated checks actually mean something.
Why now
Phase 8 (Embedded Agent Capabilities) rests on the premise that ws3 can cheaply validate model output against real package state. Two things undermine that
premise today:
ws3 contains 25 F821 undefined names. One is a confirmed NameError
(Bug: NameError from 'rel_opertors' typo in forest.py condition parser #93). Phase 8's explain_exception capability validates that referenced
symbols exist — building that check on a codebase with undefined names is
self-defeating.
CI provides no signal at all. The Lint and Type Check job is permanently
red (1808 errors, identical on main and every branch), and test, docs,
and build are all downstream of it, so they never run (CI: lint job permanently red (1808 pre-existing flake8 errors) blocks all other checks #94). Phase 8 is a
test-heavy phase and needs a working pipeline from day one.
Cheap to fix now. Expensive to fix once Phase 8 code is layered on top.
Scope
Fix the rel_opertorsNameError in ws3/forest.py with a regression test
Mechanical lint remediation (whitespace classes — no semantic change)
Individual triage of genuine defect classes: F821, F841, E722, F401
Restructure CI so a lint failure cannot silently disable every other check
Bump to v1.1.0a3, update CHANGELOG.md, publish
Out of scope
Any Phase 8 work (embedded agents, fresh-agent-core)
Stylistic reformatting beyond what lint requires
Type-annotation expansion (Phase 2 territory)
Refactoring for its own sake — this phase fixes defects and unblocks CI, nothing more
Phase: 7.5
Status: active
Branch:
feature/ws3-phase7.5-code-qualityRoadmap:
ROADMAP.md→ Phase 7.5Target release:
v1.1.0a3Goal
Clear the code-quality debt that is currently blocking meaningful CI signal, fix a
confirmed runtime bug shipped in
v1.1.0a2, and cut a patch release — so thatPhase 8 starts from a codebase where automated checks actually mean something.
Why now
Phase 8 (Embedded Agent Capabilities) rests on the premise that ws3 can cheaply
validate model output against real package state. Two things undermine that
premise today:
ws3contains 25F821undefined names. One is a confirmedNameError(Bug: NameError from 'rel_opertors' typo in forest.py condition parser #93). Phase 8's
explain_exceptioncapability validates that referencedsymbols exist — building that check on a codebase with undefined names is
self-defeating.
Lint and Type Checkjob is permanentlyred (1808 errors, identical on
mainand every branch), andtest,docs,and
buildare all downstream of it, so they never run (CI: lint job permanently red (1808 pre-existing flake8 errors) blocks all other checks #94). Phase 8 is atest-heavy phase and needs a working pipeline from day one.
Cheap to fix now. Expensive to fix once Phase 8 code is layered on top.
Scope
rel_opertorsNameErrorinws3/forest.pywith a regression testF821,F841,E722,F401v1.1.0a3, updateCHANGELOG.md, publishOut of scope
fresh-agent-core)Child tasks
rel_opertorsNameError (Bug: NameError from 'rel_opertors' typo in forest.py condition parser #93)v1.1.0a3Acceptance criteria
flake8 ws3/ --max-line-length=100 --exclude=__pycache__reports zero errorsF821undefined names remainpython -m pytestpasses, with a regression test covering the_period <=pathtest,docs, andbuildeven when lint failsws3.__version__ == '1.1.0a3'andCHANGELOG.mdrecords the releasev1.1.0a3published to PyPIVerification
flake8 ws3/ --max-line-length=100 --exclude=__pycache__ --statistics python -m pytest python -m build sphinx-build -b html docs/source _build/html python -c "import ws3; assert ws3.__version__ == '1.1.0a3'"Closeout
ROADMAP.mdandCHANGELOG.mdsynchronizedmainv1.1.0a3tagged and published