Files

43 lines
1.9 KiB
Python

#!/usr/bin/env python3
import argparse
from pathlib import Path
from datetime import datetime, timezone
def now_iso() -> str:
return datetime.now(timezone.utc).isoformat()
def append(path: Path, text: str):
path.parent.mkdir(parents=True, exist_ok=True)
if not path.exists():
path.write_text("", encoding="utf-8")
with path.open("a", encoding="utf-8") as f:
f.write(text)
def main():
parser = argparse.ArgumentParser(description="Append standard per-step doc updates")
parser.add_argument("--root", default=".", help="Project root")
parser.add_argument("--gate", required=True, help="Gate id, e.g. G3")
parser.add_argument("--task", required=True, help="Task summary")
parser.add_argument("--status", default="DONE", help="Task status")
parser.add_argument("--evidence", default="", help="Evidence summary")
parser.add_argument("--owner", default="orchestrator", help="Owner")
args = parser.parse_args()
root = Path(args.root).resolve()
ts = now_iso()
append(root / "docs" / "tasks.md", f"| {args.gate}-{ts} | {args.task} | {args.status} | {args.gate} | {args.owner} | {ts} |\n")
append(root / "docs" / "change-log.md", f"| {ts} | {args.task} | Gate {args.gate} execution | code/docs/tests | {args.owner} |\n")
append(root / "docs" / "traceability.md", f"| {args.gate}-{ts} | docs/architecture.md/docs/requirements.md | implementation update | test run | {args.status} |\n")
append(root / "docs" / "test-results.md", f"| {args.gate} | {args.task} | see commands/logs | expected met | {args.evidence or 'see logs'} | {'PASS' if args.status.upper() in ('DONE','PASS') else args.status.upper()} | {args.evidence or 'n/a'} | {ts} |\n")
append(root / "docs" / "progress.md", f"\n- [{ts}] {args.gate}: {args.task} ({args.status})\n")
print("Documentation step updates appended.")
if __name__ == "__main__":
main()