add pdftomd
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
"""Inject the project coordination reminder at Codex session start."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def read_payload() -> dict:
|
||||
raw = sys.stdin.read()
|
||||
if not raw.strip():
|
||||
return {}
|
||||
try:
|
||||
return json.loads(raw)
|
||||
except json.JSONDecodeError:
|
||||
return {}
|
||||
|
||||
|
||||
def find_repo_root(cwd: str | None) -> Path:
|
||||
start = Path(cwd or Path.cwd()).resolve()
|
||||
try:
|
||||
result = subprocess.run(
|
||||
["git", "rev-parse", "--show-toplevel"],
|
||||
cwd=start,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
check=True,
|
||||
)
|
||||
return Path(result.stdout.strip()).resolve()
|
||||
except Exception:
|
||||
return start
|
||||
|
||||
|
||||
def main() -> int:
|
||||
payload = read_payload()
|
||||
root = find_repo_root(payload.get("cwd"))
|
||||
required = ["PLAN.md", "PROGRESS.md"]
|
||||
missing = [name for name in required if not (root / name).exists()]
|
||||
|
||||
context = (
|
||||
"Before starting work in this repository, read PLAN.md and PROGRESS.md. "
|
||||
"Use PROGRESS.md as the factual state, update PLAN.md when sequencing changes, "
|
||||
"and keep samples/ out of commits unless the user explicitly requests otherwise."
|
||||
)
|
||||
|
||||
output = {
|
||||
"continue": True,
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "SessionStart",
|
||||
"additionalContext": context,
|
||||
},
|
||||
}
|
||||
if missing:
|
||||
output["systemMessage"] = "Missing project coordination file(s): " + ", ".join(missing)
|
||||
|
||||
print(json.dumps(output, ensure_ascii=True))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user