feat: complete evidence restructuring worktree
This commit is contained in:
@@ -14,6 +14,7 @@ from tht.cli.config_cmd import CONFIG_OPT
|
||||
from tht.evidence import (
|
||||
EvidencePreparationError,
|
||||
PiEvidenceRestructurer,
|
||||
migrate_workspace_evidence,
|
||||
prepare_workspace_evidence,
|
||||
resolve_workspace_evidence,
|
||||
validate_workspace_evidence,
|
||||
@@ -174,6 +175,38 @@ def validate_cmd(
|
||||
raise typer.Exit(code=1)
|
||||
|
||||
|
||||
@evidence_app.command("migrate")
|
||||
def migrate_cmd(
|
||||
workspace_root: Path,
|
||||
json_output: Annotated[bool, typer.Option("--json", help="Write machine JSON to stdout.")] = False,
|
||||
) -> None:
|
||||
"""Rewrite legacy Curated units as readable Markdown without model calls."""
|
||||
root = _canonical_worktree(workspace_root)
|
||||
try:
|
||||
report = migrate_workspace_evidence(root)
|
||||
except EvidencePreparationError as error:
|
||||
_emit({
|
||||
"schemaVersion": 1,
|
||||
"operation": "evidence_migrate",
|
||||
"status": "failed",
|
||||
"code": error.code,
|
||||
}, json_output)
|
||||
raise typer.Exit(code=1) from error
|
||||
_emit({
|
||||
"schemaVersion": 1,
|
||||
"operation": "evidence_migrate",
|
||||
"status": "migrated",
|
||||
"migrated": list(report.migrated),
|
||||
"unchanged": list(report.unchanged),
|
||||
"findings": _findings_payload(report.findings),
|
||||
}, json_output)
|
||||
if report.findings:
|
||||
if all(finding.code in {"orphaned_unit", "unresolved_review_item"}
|
||||
for finding in report.findings):
|
||||
raise typer.Exit(code=3)
|
||||
raise typer.Exit(code=1)
|
||||
|
||||
|
||||
@evidence_app.command("evaluate")
|
||||
def evaluate_cmd(
|
||||
workspace_root: Path,
|
||||
|
||||
Reference in New Issue
Block a user