0.10.0 Issue #1b — Repo-Resolution extrahieren (ein Script nutzt es)
Part of #468 —
Release 0.10.0 — AIS Tooling Interface (CLI + Contracts).
Wave: 1b (Library-Extractor).
Goal
Extract repo-resolution logic from scripts/solve_issues.py into
ais_core/repo_resolve.py (real implementation, not a stub). Have
solve_issues.py import and call the library. Prove the library-
extraction pattern works BEFORE migrating additional scripts.
Why separate
Establishes the refactor pattern (Library-Extractor) before doing it
across many scripts. If the pattern fails for one script, we catch it
here with minimal blast-radius.
Dependencies
Acceptance Criteria
Files
New:
ais_core/repo_resolve.py (full implementation)
tests/test_ais_core/test_repo_resolve.py (≥90% line coverage)
Modified:
scripts/solve_issues.py (REFACTOR ~50 LOC; calls ais_core.repo_resolve)
Tests
- Unit tests with mocked
git and remote
- Regression:
solve_issues.py --owner X --repo Y --issue N produces
same result as before refactor (golden-file test or behaviour parity
check)
Risk
MEDIUM (first real Script-Migration with side-effect init).
LOC-Budget
< 400 net.
Recommended Model
Strong coding model (gpt-4o paid OpenRouter) — first Script-Refactor
warrants higher quality bar.
Parallelizable
No (Wave 1b; runs after #1a, parallel with #1c and #1d).
Reference
0.10.0 Issue #1b — Repo-Resolution extrahieren (ein Script nutzt es)
Goal
Extract repo-resolution logic from
scripts/solve_issues.pyintoais_core/repo_resolve.py(real implementation, not a stub). Havesolve_issues.pyimport and call the library. Prove the library-extraction pattern works BEFORE migrating additional scripts.
Why separate
Establishes the refactor pattern (Library-Extractor) before doing it
across many scripts. If the pattern fails for one script, we catch it
here with minimal blast-radius.
Dependencies
Acceptance Criteria
ais_core/repo_resolve.pyimplements the actual repo-resolutionlogic (no longer a stub)
resolve_repo_hint(hint: str) -> ResolvedRepo,resolve_from_owner_repo(owner: str, repo: str) -> ResolvedRepo,resolve_from_git_remote(path: str) -> ResolvedReposcripts/solve_issues.pyimports fromais_core.repo_resolveand delegates repo-resolution
solve_issues.pybehaviour is identical to before(regression-tested)
Files
New:
ais_core/repo_resolve.py(full implementation)tests/test_ais_core/test_repo_resolve.py(≥90% line coverage)Modified:
scripts/solve_issues.py(REFACTOR ~50 LOC; callsais_core.repo_resolve)Tests
gitand remotesolve_issues.py --owner X --repo Y --issue Nproducessame result as before refactor (golden-file test or behaviour parity
check)
Risk
MEDIUM (first real Script-Migration with side-effect init).
LOC-Budget
< 400 net.
Recommended Model
Strong coding model (
gpt-4opaid OpenRouter) — first Script-Refactorwarrants higher quality bar.
Parallelizable
No (Wave 1b; runs after #1a, parallel with #1c and #1d).
Reference
docs/PLANNING_0.10.0.md§ #1b