Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
b8623b6
fix(decision-hold): pass verify for answered holds trimmed from the b…
EvanAgee Sep 1, 2026
76b4aa4
no-mistakes(review): require a resolved line as the only answer proof
EvanAgee Sep 1, 2026
391ada5
no-mistakes(review): use the key's last transition as answer proof
EvanAgee Sep 1, 2026
ddef8cc
no-mistakes(review): treat only a real not-found as hold archival
EvanAgee Sep 1, 2026
8047e85
no-mistakes(review): name unreadable backlog apart from a missing hold
EvanAgee Sep 1, 2026
5699d94
no-mistakes(review): require the delivered-answer marker as answer proof
EvanAgee Sep 1, 2026
958ac63
no-mistakes(review): refuse absent holds that were never registered
EvanAgee Sep 1, 2026
369e262
no-mistakes(review): strip the key prefix only for reserved keys
EvanAgee Sep 1, 2026
96b5e4f
no-mistakes(review): require an intact backlog before trusting archival
EvanAgee Sep 1, 2026
c83cf98
no-mistakes(review): accept any tasks-axi-valid Done heading
EvanAgee Sep 1, 2026
b2357b3
no-mistakes(review): record captain answers in origin meta so archiva…
EvanAgee Sep 1, 2026
2005f99
no-mistakes(document): correct decision-hold archival rules and refre…
EvanAgee Sep 1, 2026
18de606
fix(decision-hold): make answered_keys the only answer proof and fail…
EvanAgee Sep 1, 2026
f1ec30d
test(decision-hold): drive the real fm-send chat answer through to ar…
EvanAgee Sep 1, 2026
2bbbafe
no-mistakes(review): correct stale answer-proof docs, drop dead reade…
EvanAgee Sep 1, 2026
932e8ab
no-mistakes(review): stop answer record resurrecting torn-down origin…
EvanAgee Sep 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions bin/fm-classify-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,17 @@ FM_PAUSE_RESURFACE_SECS_DEFAULT=3600
FM_CLASSIFY_RESOLVE_VERB_DEFAULT='resolved'
FM_CLASSIFY_CAPTAIN_HELD_VERB_DEFAULT='captain-held'

# The note prefix bin/fm-send.sh writes on the resolved line it appends when a
# captain's answer is DELIVERED, so a reader can tell that close apart from the
# `resolved [key=<slug>]: <why it is no longer active>` line bin/fm-brief.sh tells a
# mate to append when a keyed phase fizzles or a blocker clears on its own. It is a
# human-readable annotation ONLY. It is deliberately not read back as proof anyone
# answered: a mate writes its own status lines, so it can forge this marker as easily
# as any other text. The one durable answer proof is the origin metadata's
# answered_keys list, which only bin/fm-decision-hold.sh's close paths write.
# shellcheck disable=SC2034 # Read by bin/fm-send.sh, not by this lib's own fold.
FM_CLASSIFY_ANSWER_NOTE_MARKER='answered:'

# Return the last non-blank line of a status file (empty if missing/blank).
last_status_line() {
local f=$1
Expand Down
Loading
Loading