diff --git a/SKILL.md b/SKILL.md index 57d0825..c12f273 100644 --- a/SKILL.md +++ b/SKILL.md @@ -130,6 +130,22 @@ Update the file by **overwriting** it, not appending, at these moments: | Before handoff / subagent exit | Preserves outputs and unsurfaced results | | After a substantive state change | Keeps checkpoint aligned with actual work | +### Override rule + +**CURRENT_STATE.md must always be overwritten when:** +- A new task or objective starts — regardless of what is currently in the file +- The previous objective is complete or abandoned +- The user gives a new task that supersedes the previous one + +Having content in CURRENT_STATE.md does NOT mean it should be preserved. +Content only matters if Objective is still active and work is genuinely in progress. + +Checking before overwrite: +- Read the file +- If Objective matches the current task → update in place (overwrite) +- If Objective does NOT match → overwrite the entire file with the new state +- Never append. Never skip the update because "there's already something there". + ### 4. Keep the checkpoint small `CURRENT_STATE.md` should usually stay under about 40 lines and be readable in diff --git a/scripts/continuity_doctor.py b/scripts/continuity_doctor.py index 90c5c88..cf28dc0 100644 --- a/scripts/continuity_doctor.py +++ b/scripts/continuity_doctor.py @@ -15,7 +15,7 @@ import sys import re from datetime import datetime, timezone from pathlib import Path -from typing import Optional +from typing import Dict, List, Optional, Tuple # --------------------------------------------------------------------------- @@ -33,7 +33,7 @@ class Severity: # --------------------------------------------------------------------------- class DiagnosticReport: def __init__(self): - self.entries: list[tuple[str, str]] = [] + self.entries: List[Tuple[str, str]] = [] self._worst = Severity.OK def add(self, severity: str, message: str): @@ -112,7 +112,7 @@ def check_staleness(state_file: Path, workspace: Path, report: DiagnosticReport) def check_template_compliance(state_file: Path, report: DiagnosticReport) -> dict: """Check all required sections are present and not placeholder-only.""" content = state_file.read_text(encoding="utf-8") - sections_found: dict[str, str] = {} + sections_found: Dict[str, str] = {} for section in REQUIRED_SECTIONS: # Match ## Section or ## Section\n