modify documents

This commit is contained in:
NINI
2026-05-01 02:29:30 +09:00
parent 4b89f4aa96
commit e99b5b8eff
65 changed files with 2814 additions and 72 deletions
+85
View File
@@ -0,0 +1,85 @@
#!/usr/bin/env python3
"""Provide FESA handoff context at Codex session startup/resume."""
from __future__ import annotations
import json
import sys
from pathlib import Path
MAX_SECTION_CHARS = 700
def find_repo_root(start: Path) -> Path:
for candidate in (start, *start.parents):
if (candidate / "AGENTS.md").exists() and (candidate / "PLAN.md").exists():
return candidate
return start
def read_text(path: Path) -> str:
try:
return path.read_text(encoding="utf-8")
except OSError:
return ""
def section(markdown: str, heading: str) -> str:
marker = f"## {heading}"
start = markdown.find(marker)
if start < 0:
return ""
start = markdown.find("\n", start)
if start < 0:
return ""
end = markdown.find("\n## ", start + 1)
body = markdown[start:end if end >= 0 else len(markdown)].strip()
body = " ".join(line.strip() for line in body.splitlines() if line.strip())
if len(body) > MAX_SECTION_CHARS:
body = body[:MAX_SECTION_CHARS].rstrip() + "..."
return body
def main() -> int:
try:
payload = json.load(sys.stdin)
except json.JSONDecodeError:
payload = {}
root = find_repo_root(Path(payload.get("cwd") or ".").resolve())
plan = read_text(root / "PLAN.md")
progress = read_text(root / "PROGRESS.md")
context_lines = [
"FESA session startup context:",
"- Before planning or editing, read AGENTS.md, PROGRESS.md, PLAN.md, and docs/README.md.",
"- Keep completed work in PROGRESS.md and future tasks/open decisions in PLAN.md.",
]
current_objective = section(plan, "Current Objective")
if current_objective:
context_lines.append(f"- Current objective: {current_objective}")
current_status = section(progress, "Current Status")
if current_status:
context_lines.append(f"- Current status: {current_status}")
blockers = section(progress, "Known Blockers") or section(plan, "Open Questions")
if blockers:
context_lines.append(f"- Blockers/open questions: {blockers}")
json.dump(
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "\n".join(context_lines),
}
},
sys.stdout,
)
return 0
if __name__ == "__main__":
raise SystemExit(main())