-
Notifications
You must be signed in to change notification settings - Fork 0
fix(bin): restore beads backend support and dispatch validation #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
a034a2c
66ffd16
40672fa
2ec35bb
cf1574f
b4919d9
75480a8
13405b3
7d28f57
7137ef9
a4f9f1e
240b5a8
30f4791
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -1889,6 +1889,35 @@ EOF | |||||||||
| pass "main and secondmate captain actionability use the same blocker readiness" | ||||||||||
| } | ||||||||||
|
|
||||||||||
| # The /bearings skill is the one owner of the four-section chat-response contract. | ||||||||||
| # Assert it states exactly the four fixed sections in order, each with its explicit | ||||||||||
| # empty-state sentence, documents the At Anchor exclusion, and keeps file-mode links | ||||||||||
| # inside the four-section digest. | ||||||||||
| test_chat_contract_four_sections() { | ||||||||||
| local skill body headings report_headings expected | ||||||||||
| skill="$ROOT/.agents/skills/bearings/SKILL.md" | ||||||||||
| [ -f "$skill" ] || fail "bearings SKILL.md missing at $skill" | ||||||||||
| body=$(awk '/^## Chat-response contract$/{capture=1; next} capture && /^## /{exit} capture' "$skill") | ||||||||||
| headings=$(printf '%s\n' "$body" | sed -nE "s/^[0-9]+\. \*\*([^*]+)\*\*.*/\1/p") | ||||||||||
| expected=$(printf '%s\n' "Captain's Call" "Recently Landed" "Underway" "Charted Next") | ||||||||||
| [ "$headings" = "$expected" ] || fail "chat contract must contain exactly four numbered sections in fixed order, got: $headings" | ||||||||||
| assert_contains "$body" "Nothing needs your action right now" "Captain's Call empty-state sentence" | ||||||||||
| assert_contains "$body" "No recent completions are in the current baseline" "Recently Landed empty-state sentence" | ||||||||||
| assert_contains "$body" "Nothing is underway" "Underway empty-state sentence" | ||||||||||
| assert_contains "$body" "Nothing is queued" "Charted Next empty-state sentence" | ||||||||||
| report_headings=$(sed -nE 's/^ - \*\*(Captain.s Call|Recently Landed|Underway|Charted Next)\*\*.*/\1/p' "$skill") | ||||||||||
| [ "$report_headings" = "$expected" ] || fail "detailed report contract must contain the same four complete sections, got: $report_headings" | ||||||||||
|
Comment on lines
+1908
to
+1909
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Reject unrecognized report headings. The Proposed fix- report_headings=$(sed -nE 's/^ - \*\*(Captain.s Call|Recently Landed|Underway|Charted Next)\*\*.*/\1/p' "$skill")
+ report_headings=$(sed -nE 's/^ - \*\*([^*]+)\*\*.*/\1/p' "$skill")📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||
| grep -Eq 'since the (prior|last) report|Nothing has landed since|unchanged delta' "$skill" \ | ||||||||||
| && fail "bearings contract still contains prior-report delta wording" | ||||||||||
| # shellcheck disable=SC2016 # Backticks are literal Markdown in the expected text. | ||||||||||
| assert_contains "$(cat "$skill")" 'Never read an earlier `data/status-report-*.md`' "prior reports must not influence current output" | ||||||||||
| assert_contains "$(cat "$skill")" "bounded current recent-completions baseline" "Recently Landed must be a current baseline" | ||||||||||
| assert_contains "$body" "no At Anchor section" "the At Anchor exclusion must be documented" | ||||||||||
| assert_contains "$body" "materially shorter" "the file-mode chat must be materially shorter than the report file" | ||||||||||
| assert_contains "$body" "report path or link" "file mode must link the report from inside the digest" | ||||||||||
| pass "the /bearings skill states the four-section chat contract in order, with empty-states and the At Anchor exclusion" | ||||||||||
| } | ||||||||||
| test_chat_contract_four_sections | ||||||||||
| test_domain_alpha_stale_parent_event_does_not_become_current_work | ||||||||||
| test_gnu_stat_uses_file_formats_without_bsd_fallback_pollution | ||||||||||
| test_parent_activity_evidence_is_bounded_and_disclosed | ||||||||||
|
|
||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Match the complete empty-state sentences.
The contract defines exact sentences, including the final period. These
assert_containscalls check only substrings. A changed sentence can retain the substring and still pass. Use an exact-line check for eachEmpty-state: "..."entry.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents