Move src/signals/slop.ts (516 lines: SlopBand, SlopAssessmentInput, SlopAssessment, SLOP_WEIGHTS, and the deterministic slop-scoring functions) into packages/gittensory-engine/src/slop.ts. This is the largest single extraction in the phase and depends on the smaller modules already moved (test-evidence, local-branch's isCodeFile/isTestFile classification, focus-manifest's isFocusManifestPublicSafe, path-matchers' classifyChangedFile) — sequence this AFTER the test-evidence extraction and the focus-manifest extraction issues so its internal imports resolve against the engine package instead of reaching back into src/.
Deliverables
References
src/signals/slop.ts (516 lines, full file) — the module to port, including its SLOP_WEIGHTS header comment explaining why weights are false-positive-averse (must be preserved verbatim, not paraphrased).
src/signals/test-evidence.ts, src/signals/path-matchers.ts — direct dependencies to sequence before this issue.
src/signals/focus-manifest.ts's isFocusManifestPublicSafe (line 300) — cross-module dependency to resolve.
packages/gittensory-engine/ — created by the package-skeleton issue (must land first).
Move
src/signals/slop.ts(516 lines:SlopBand,SlopAssessmentInput,SlopAssessment,SLOP_WEIGHTS, and the deterministic slop-scoring functions) intopackages/gittensory-engine/src/slop.ts. This is the largest single extraction in the phase and depends on the smaller modules already moved (test-evidence,local-branch'sisCodeFile/isTestFileclassification,focus-manifest'sisFocusManifestPublicSafe,path-matchers'classifyChangedFile) — sequence this AFTER the test-evidence extraction and the focus-manifest extraction issues so its internal imports resolve against the engine package instead of reaching back intosrc/.Deliverables
packages/gittensory-engine/src/slop.ts— verbatim port of the full slop-scoring module, importing its dependencies (isCodeFile/isTestFile,isFocusManifestPublicSafe,classifyChangedFile) from sibling engine modules rather thansrc/.packages/gittensory-engine/src/path-matchers.tsand a minimallocal-branchclassification helper (isCodeFile/isTestFileonly, not the full local-branch module) ported as slop's direct dependencies, OR (if those are already extracted by a parallel issue) wired to the existing engine copies.src/signals/slop.tsbecomes a thin re-export shim from@jsonbored/gittensory-enginepreserving every existing export name.packages/gittensory-engine/src/index.tsre-exports the new module.References
src/signals/slop.ts(516 lines, full file) — the module to port, including itsSLOP_WEIGHTSheader comment explaining why weights are false-positive-averse (must be preserved verbatim, not paraphrased).src/signals/test-evidence.ts,src/signals/path-matchers.ts— direct dependencies to sequence before this issue.src/signals/focus-manifest.ts'sisFocusManifestPublicSafe(line 300) — cross-module dependency to resolve.packages/gittensory-engine/— created by the package-skeleton issue (must land first).