Skip to content

feat(bin): scope outward-facing published text to the repository under change - #2469

Closed
TheKingJulian wants to merge 3 commits into
kunchenguid:mainfrom
TheKingJulian:fm/firstmate-run-intent-leaks-private-identifiers-v1
Closed

feat(bin): scope outward-facing published text to the repository under change#2469
TheKingJulian wants to merge 3 commits into
kunchenguid:mainfrom
TheKingJulian:fm/firstmate-run-intent-leaks-private-identifiers-v1

Conversation

@TheKingJulian

@TheKingJulian TheKingJulian commented Aug 16, 2026

Copy link
Copy Markdown

Withdrawn by the author. Opened against the upstream project in error; this work belongs on the author's fork.

Run intent is composed from a worker's working context and published
verbatim as the PR description. Nothing filtered identifiers belonging to
another repository, a private task, or the local machine, so a private task
name, two foreign commit ids, and a gate-clone id reached a public PR body
and stayed readable after the PR was closed, because a closed PR keeps its
body. The same class also reached tracked verification prose.

Establish the contract: an identifier may appear in outward-facing text only
when a reader holding the repository under change, and nothing else, could
resolve it. This is a scoping rule and never a length rule - the accepted
requirements are exactly what a PR description is for.

- bin/fm-outward-text-check.sh reports foreign object ids, forge URLs naming
  another repository, machine-local paths, and other tasks' or projects'
  private names. Every verdict is decided against the repository under
  change rather than by keyword heuristics, so prose about dates, versions,
  commands, and relative paths is never matched.
- Generated no-mistakes and direct-PR briefs require the worker to check the
  intent or PR body before publishing. That is the only point that can act
  before a description exists, since posting cannot be undone.
- Repo invariants CI scans prose the branch adds and fails on blocking
  findings. Blocking covers what nothing outside one machine or one fleet can
  ever resolve; an unresolvable id stays reviewable because a named upstream
  can make it legitimate, and .fm-outward-allow settles those once.
- Replace a real captain home path recorded in Herdr injection evidence with
  a placeholder, which the check found in the existing tracked docs.

docs/outward-facing-text.md owns the contract; the script header owns the
options, categories, and known bounds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant