Skip to content

Commit b507a2d

Browse files
authored
fix: preserve scope in consequential claims (#69)
* fix: prove blockers before escalation * no-mistakes(review): Remove obsolete premise shortcut repository-wide * no-mistakes(review): Remove stale status reconciliation ownership pointer * fix: unify consequential claim proof * no-mistakes(review): Block claims on unresolved contradictory evidence * no-mistakes(lint): Remove unused operating-fundamentals test variable * no-mistakes: apply CI fixes
1 parent 5cd96b0 commit b507a2d

7 files changed

Lines changed: 62 additions & 66 deletions

File tree

.agents/skills/crew-steering/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Treat `almost there` as unfinished, require real evidence because work is not do
3131

3232
## 3. Fact-check the load-bearing premise
3333

34-
Cheaply test the crewmate's one load-bearing assumption before it acts, rejecting a shallow-false premise without overcorrecting; `operating-fundamentals` section 7 owns the premise-check rule.
34+
Reject a shallow-false premise without overcorrecting.
3535

3636
## 4. Prefer quality and robustness
3737

.agents/skills/lavish-decisions/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: lavish-decisions
33
description: >-
44
Agent-only workflow for creating durable captain-facing Lavish decisions.
5-
Use before creating or revising a multi-option decision, approval batch, triage request, or other structured captain input that must remain answerable asynchronously.
5+
Use before creating, repairing, or presenting a multi-option captain choice; route it to the durable file protocol, never a browser, form, server, or poll.
66
Do not use it for read-only reports or simple yes/no questions.
77
user-invocable: false
88
metadata:

.agents/skills/operating-fundamentals/SKILL.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: operating-fundamentals
33
description: >-
44
Agent-only operating practice for firstmate.
5-
Use when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or a finished crewmate, protecting shared validation capacity, acting on an explicit captain order, about to make a consequential config/system change or an escalation, or about to assert a fleet fact.
5+
Use when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or a finished crewmate, protecting shared validation capacity, acting on an explicit captain order, before making or relaying a consequential claim about success, failure, a blocker, or a capability, making a consequential config/system change, or asserting a fleet fact.
66
user-invocable: false
77
metadata:
88
internal: true
@@ -48,11 +48,12 @@ Treat an explicit captain order as the governing objective within non-overridabl
4848
Do not let a default workflow, local guardrail, or convenience silently replace that objective.
4949
Execute it directly or find a compliant route; if none exists, surface the exact conflict and the nearest viable alternative.
5050

51-
## 7. Always check before asserting
51+
## 7. Prove each consequential claim at the scope you report
5252

53-
Before ANY consequential action - a config/system change, an escalation to the captain, or a confident claim of fact/status - cheaply sanity-check the ONE load-bearing assumption: is it even true at the shallowest level?
54-
What am I actually changing, and what is its target?
55-
Catch clearly-false premises; do not overcorrect.
56-
Before classifying any gate, check, blocker, or failure as safe to bypass, establish the operation's target outcome and verify that the failing thing is neither that outcome nor on its critical path.
57-
Before adding a bypass that gates an irreversible or high-stakes action, record the target outcome and the rationale for the critical-path judgment; trivial skips are exempt.
58-
A failure in the capability the operation exists to deliver is the operation failing, not noise.
53+
Before reporting any mechanism, capability, check, or outcome as working, failed, blocked, or unavailable, record its exact actor or credential, command or surface, target environment, and every leg covered.
54+
Evidence about one coordinate or leg supports only it: neither a neighboring pass nor a single failure proves an untested positive or global absence.
55+
Contradictory directly relevant evidence blocks the claim until reproduced and resolved or proven out-of-scope; unresolved, report observations only.
56+
A positive needs direct end-to-end evidence on the actual target or an `unverified` label; a blocker or absence also needs the authoritative reference, one materially independent safe in-scope route or why none exists, and the narrowest supported result: `this route failed`, `capability unavailable`, or `captain action required`.
57+
Keep investigating while a plausible safe route remains; escalate only when those routes are exhausted or the remaining action is genuinely captain-owned.
58+
Before dismissing or escalating a gate, check, blocker, or failure, establish the target outcome and verify that the failing thing is neither that outcome nor on its critical path.
59+
Before adding a bypass that gates an irreversible or high-stakes action, record the target outcome and critical-path rationale; a failure in the capability the operation exists to deliver is the operation failing, not noise.

AGENTS.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -708,16 +708,13 @@ Translate, don't expose: say the project is blocked, ready, or needs a decision
708708
Before creating or surfacing any captain-facing decision, status, or summary, reconcile it against live fleet state, including current crewmate states and what is done versus pending.
709709
Never render from a remembered snapshot; the instant a decision is actioned or work changes state, each actionable portion must reflect it by removing resolved actionable or decision items and showing only what is genuinely pending or in flight.
710710
Completion-oriented surfaces whose purpose is completed work, including the Recently Landed section of `/bearings` and `/reports`, retain relevant completion history instead of applying this removal rule.
711-
Operating fundamentals #7 owns the check-before-acting bar.
712-
713711
Reaches the captain immediately:
714712

715713
- Work ready for review, with the full PR URL.
716714
- Finished investigation findings, relayed as findings and not just "it's done".
717715
- Review findings that need the captain's decision, relayed verbatim unless routine approval is authorized on firstmate judgment.
718716
- A genuine captain-owned decision only: a product or brand call; something destructive, irreversible, or security-sensitive; a true external blocker; or a needed credential or login.
719-
- A blocker or failure reaches this bar only after directing the crewmate to root-cause and implement a fix, iterating until it is genuinely solved or the crewmate's capability is truly exhausted.
720-
- `This is hard` or `the task is failing` is not an escalation trigger; get it working through the crewmate first.
717+
- Before any blocker reaches the captain, satisfy operating fundamentals #7; its proof bar applies equally to firstmate-owned and relayed claims.
721718

722719
Does not reach the captain: auto-fixes, retries, routine progress, or firstmate's internal vocabulary and machinery.
723720
Batch non-urgent updates into your next natural reply.
@@ -821,7 +818,7 @@ These skills are not captain-invocable; they are conditional operating reference
821818

822819
- `bootstrap-diagnostics` - load whenever the session-start digest's bootstrap section prints any diagnostic or capability line (`MISSING:`, `MISSING_MANUAL:`, `BACKEND_INVALID:`, `ACCOUNT_ROUTING:`, `NEEDS_GH_AUTH`, `TANGLE:`, `CREW_HARNESS_OVERRIDE:`, `CREW_DISPATCH:`, `FLEET_SYNC:`, `SECONDMATE_SYNC:`, `SECONDMATE_LIVENESS:`, `TASKS_AXI:`, `NUDGE_SECONDMATES:`, `REPORT_RETENTION:`, or `FMX:`); silence needs no load.
823820
- `harness-adapters` - load before spawning or recovering a crewmate or secondmate, handling a trust or permission dialog, sending a harness-specific skill invocation, interrupting or exiting an agent, resuming an exited agent, or verifying a new harness adapter.
824-
- `operating-fundamentals` - load when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or finished crewmate, protecting shared validation capacity, acting on an explicit captain order, about to make a consequential config/system change or an escalation, or about to assert a fleet fact.
821+
- `operating-fundamentals` - load when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or finished crewmate, protecting shared validation capacity, acting on an explicit captain order, before making or relaying a consequential claim about success, failure, a blocker, or a capability, making a consequential config/system change, or asserting a fleet fact.
825822
- `crew-steering` - load before writing or materially revising any crewmate brief and before live-steering a crewmate.
826823
- `firstmate-orca` - load before recovering or supervising legacy Orca-backed work, testing Orca backend behavior, debugging Orca task state, or reconciling Orca-backed task metadata.
827824
- `stuck-crewmate-recovery` - load after a stale wake, permission-prompt or system-dialog suspicion, looping pane, repeated confusion, an answered-by-brief question, an unresponsive crewmate, or a failed steer.
@@ -831,7 +828,7 @@ These skills are not captain-invocable; they are conditional operating reference
831828
- `skill-authoring-standard` - load before authoring or substantially editing any skill in this repo or any project, and before briefing a project crewmate to do so.
832829
- `firstmate-coding-guidelines` - load before changing firstmate's shared, tracked material, as defined by section 1's list, whether editing directly or briefing a crewmate for a firstmate-repo task.
833830
- `memory-hygiene` - load before writing, rewriting, pruning, deduplicating, or otherwise leaning `data/captain.md` or `data/learnings.md`.
834-
- `lavish-decisions` - load before creating or revising a multi-option captain-facing decision that must remain answerable asynchronously.
831+
- `lavish-decisions` - load before creating, repairing, or presenting a multi-option captain choice.
835832
- `lavish-repair` - load when a served Lavish board remains loading, cannot exchange live feedback, reports no agent listener, or before restarting Lavish or browser processes to repair a surface.
836833
- `eks-usage` - load before running `kubectl` or Amazon EKS commands, on an EKS IAM, authenticator, TLS, or connectivity error, or whenever the active cluster or context is uncertain.
837834

tests/behavior-test-durations.tsv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,6 @@
8888
95645 tests/fm-watch-triage.test.sh
8989
20435 tests/fm-watcher-lock.test.sh
9090
23744 tests/fm-x-mode.test.sh
91+
250 tests/lavish-repair.test.sh
9192
6200 tests/lavish.test.sh
9293
92 tests/operating-fundamentals.test.sh

tests/fm-behavior-shards.test.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ test_checked_in_plan_is_complete_balanced_and_deterministic() {
2222

2323
out=$("$SHARDER" --check "$SHARD_COUNT") \
2424
|| fail "checked-in behavior shard plan failed its coverage guard"
25-
assert_contains "$out" "FM_BEHAVIOR_PLAN ok tests=87 shards=8" \
26-
"coverage guard did not report the complete 87-test inventory"
25+
assert_contains "$out" "FM_BEHAVIOR_PLAN ok tests=88 shards=8" \
26+
"coverage guard did not report the complete 88-test inventory"
2727
"$SHARDER" --plan "$SHARD_COUNT" > "$plan_a"
2828
"$SHARDER" --plan "$SHARD_COUNT" > "$plan_b"
2929
cmp -s "$plan_a" "$plan_b" || fail "same durations produced different shard plans"
@@ -165,7 +165,7 @@ test_post_run_guard_requires_the_exact_executed_union() {
165165
write_complete_manifests "$plan" "$good"
166166
out=$("$SHARDER" --verify "$SHARD_COUNT" "$good") \
167167
|| fail "post-run guard rejected the exact complete manifest union"
168-
assert_contains "$out" "FM_BEHAVIOR_COMPLETENESS ok tests=87 shards=8" \
168+
assert_contains "$out" "FM_BEHAVIOR_COMPLETENESS ok tests=88 shards=8" \
169169
"post-run guard did not report complete execution"
170170

171171
cp -R "$good" "$missing"

0 commit comments

Comments
 (0)