Skip to content

[firstmate#1248] feat(bin): scaffold an agent-maintained working log in ship and sco... #1868

Description

@github-actions

Decision needed - firstmate#1248

PR review by tomharper · merge-ready

feat(bin): scaffold an agent-maintained working log in ship and scout briefs

Situation

  • Compliance: pass
  • Tests: green
  • Configured checks: PR must be raised via no-mistakes (compliance: pass), Behavior portable parallel 1 (informational: pass), Behavior portable parallel 2 (informational: pass), Behavior portable serial (informational: pass), Behavior timing aggregate (informational: pass), Lint shell scripts (informational: pass), Repo invariants (informational: pass), Stock macOS Bash snapshot compatibility (informational: pass), Test coverage guard (informational: pass), Behavior tests (Herdr) (test: pass)
  • Freshness: complete target observation as of 2026-08-02T15:17:57Z
  • Notes: compliance=pass tests=green

Related work

Note

Related-work context is truncated (comparison_incomplete): comparison across open pull requests is incomplete, so a relation may be missed; this says nothing about the target itself. The candidate list, shared paths, and references are advisory display only and never an overlap or action gate.

Showing 10 of 148 deterministic related candidates, strongest relations first; the remaining matches are omitted by the deliberate display/model context cap, not by missing comparison evidence.

  • kunchenguid/firstmate#77 - fix(brief): gate AGENTS.md creation and require conventional commits - exact shared paths: AGENTS.md, bin/fm-brief.sh
  • kunchenguid/firstmate#140 - fix(brief): remove lone apostrophe that broke fm-brief.sh parse - exact shared path: bin/fm-brief.sh
  • kunchenguid/firstmate#160 - fix(afk): force-deliver wedged escalations past max-defer - exact shared path: docs/architecture.md
  • kunchenguid/firstmate#194 - fix(fm-brief): scaffold ship briefs under bash 3.2 - exact shared path: bin/fm-brief.sh
  • kunchenguid/firstmate#204 - fix(bin): fix bash 3.2 heredoc and unbound-variable crashes in fm-brief/fm-pr-merge - exact shared path: bin/fm-brief.sh
  • kunchenguid/firstmate#261 - feat: adopt existing cmux workspaces for supervision - exact shared path: AGENTS.md
  • kunchenguid/firstmate#269 - fix(bin): make heredoc assignments immune to bash-3.2 quote tracking - exact shared paths: bin/fm-brief.sh, tests/fm-brief.test.sh
  • kunchenguid/firstmate#280 - feat(harness): add cursor and hermes verified adapters - exact shared path: AGENTS.md
  • kunchenguid/firstmate#289 - Add summary-first report contract - exact shared paths: AGENTS.md, bin/fm-brief.sh
  • kunchenguid/firstmate#290 - fix: harness detection, backend binary check, FM_PROJECTS_OVERRIDE drift - exact shared path: AGENTS.md

Advisory context only. Shared paths and references are not an auto-merge overlap gate.

Auto-merge criteria

Note

Read-only preflight from the authoritative auto-merge evaluator. A displayed MET result never authorizes a merge: Wheelhouse re-evaluates every gate and performs G7 immediately before acting.

Scope

  • MET Scope - merge-ready PR review - kind=pr-review bucket=merge-ready

Safety

  • MET Safety - complete healthy scan - repo scan is ok, complete, and mergeability settled
  • MET Safety - target PR is open - target PR is open and unmerged
  • MET Safety - no per-PR auto-merge opt-out - wheelhouse:no-auto-merge is absent
  • MET Safety - head SHA unchanged - scan and live head 7c8ced1f

G0 (repo)

  • MET G0 - repository auto-merge enabled - enabled by effective repository policy
  • UNAVAILABLE G0 - default-branch VISION.md present - VISION.md missing or unreadable on the default branch

G1 (card)

G2 (files)

  • MET G2 - complete immutable file list - 5 immutable changed path entries read
  • MET G2 - workflow and security exclusions clear - no unconditional workflow/security/governance exclusions

G3 (author)

  • MET G3 - non-maintainer human contributor - tomharper is a non-maintainer human
  • UNMET G3 - prior merged contribution in this repo - G3 author tomharper has no prior merged PR in firstmate

G4 (checks)

  • MET G4 - configured checks green - comp=pass tests=green (merge-ready)
  • MET G4 - PR mergeable - live mergeable is MERGEABLE
  • MET G4 - merge state clean - live merge state is CLEAN

G5 (size)

  • MET G5 - changed-file limit - 5 changed files <= 20
  • MET G5 - changed-line limit - 115 changed lines <= 1000

G6 (triage + behavior)

  • MET G6 - automatic triage credential configured - model credential is configured; card triage eligibility is evaluated separately
  • MET G6 - successful triage for current head - successful triage for head 7c8ced1f
  • MET G6 - top-level recommendation is merge - explicit merge recommendation
  • UNMET G6 - eligible behavior class - MANUAL REVIEW REQUIRED - Existing/default behavior changes do not qualify for automatic-merge class A, B, or C.
  • UNMET G6 - existing/default behavior unchanged - existing/default behavior change not ruled out
  • UNAVAILABLE G6 - class C is opt-in and default-off - not evaluated because behavior class is invalid
  • VISION.md-dependent checks - needs VISION.md
    • UNAVAILABLE G6 - behavior aligns with VISION.md - not evaluated because a trusted default-branch VISION.md is required
    • UNAVAILABLE G6 - behavior verdict recommends merge - not evaluated because a trusted default-branch VISION.md is required
    • UNAVAILABLE G6 - verdict uses current VISION.md revision - not evaluated because a trusted default-branch VISION.md is required
    • UNAVAILABLE G6 - verdict uses current base revision - not evaluated because a trusted default-branch VISION.md is required

G7 (final gate)

  • UNAVAILABLE G7 - immediate live recheck and manual merge gate - runs only immediately before merge: card claim, VISION, head/base, mergeability, checks, opt-out label, and unchanged manual workflow gate

Triage

  • Summary: Adds an agent-maintained working log (data//log.md) to ship and scout briefs so relaunched workers can resume from disk rather than losing in-context understanding when their context is evicted.
  • Product implications: Owner discussion: generated ship and scout briefs now unconditionally include a working-log section and an updated rule-2 write-boundary carve-out; the default output of bin/fm-brief.sh changes for every user of kunchenguid/firstmate after merge. All 10 configured checks pass and the PR body supplies concrete behavioral evidence for the key constraints.

Recommended action

  • Agent recommendation: merge
  • Reason: All 10 configured checks pass, including the stock macOS Bash 3.2 snapshot check and behavior tests (18/18 brief tests, 5/5 documentation tests). The PR body supplies concrete behavioral evidence: a no-wake demo (6 log appends leave fm-watch.sh asleep while one status append wakes it), an end-to-end resume replay recovering four post-dispatch steers and two rejected approaches from disk, and a teardown grep confirming data// is never removed. The pipeline Review phase raised one info-level test-quality gap: tests/fm-brief.test.sh line 330 calls assert_no_grep on the secondmate brief without a preceding assert_present guard—if bin/fm-brief.sh --secondmate exits non-zero the file may be...

From the current admitted automatic triage assessment for this exact revision. Tick Accept recommendation to apply it - it is advisory and never an auto-merge authorization.

Your decision

Tick one box for a quick call, or reply with a slash-command (/merge, /close, /decline <reason>, /hold, /comment <text>, /request-changes <text>):

  • Accept recommendation
  • Merge it
  • Close / decline
  • Investigate - deep code-grounded review (leaves this card open)
  • Hold - I'll handle this manually

Only the repository owner can drive this decision - everyone else's edits and comments are ignored.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions