#!/usr/bin/env python3 from __future__ import annotations import argparse from common import BACKLOG_PATH, BACKLOG_SECTION, insert_into_section, load_text, next_backlog_id, save_text def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description="Append an item to BACKLOG.md.") parser.add_argument( "--lane", required=True, choices=("implementation", "research", "ops", "bug"), help="Backlog section to append to.", ) parser.add_argument("--summary", required=True, help="One-line backlog summary.") parser.add_argument( "--priority", default="soon", choices=("now", "soon", "later"), help="Coarse urgency label.", ) parser.add_argument( "--tags", default="", help="Comma-separated tags stored inline for grepability.", ) return parser.parse_args() def main() -> None: args = parse_args() item_id = next_backlog_id(args.lane) tags = f" tags={args.tags}" if args.tags else "" entry = f"- [{item_id}] ({args.priority}) {args.summary}{tags}" updated = insert_into_section(load_text(BACKLOG_PATH), BACKLOG_SECTION[args.lane], entry) save_text(BACKLOG_PATH, updated) print(item_id) if __name__ == "__main__": main()