Proof: Preserve the completed first live BTC/EURe trade loop and establish the next approved implementation proof around pre-credit funding visibility and operator alerts. Assumptions: The live-trade loop is sufficiently proven by the recorded deposits, withdrawals, durable command/result chain, and successful mainnet quote responses; the next highest-value slice is operational visibility rather than new execution breadth. Still fake: The newly opened funding-visibility and alert turn is planning only; no pre-credit watcher or durable alert evaluator is implemented yet.
43 lines
1.3 KiB
Python
Executable file
43 lines
1.3 KiB
Python
Executable file
#!/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()
|