Skip to content

docs(chapters): 写第十二章《Relay》并更新路线图 - #13

Merged
jasontopia merged 2 commits into
mainfrom
fm/learn-fm-ch12
Sep 26, 2026
Merged

jasontopia merged 2 commits into
mainfrom
fm/learn-fm-ch12

Conversation

@jasontopia

Copy link
Copy Markdown
Owner

Intent

继续 Learn FirstMate 教程,写第十二章,也是最后一章。前十一章已写完或正在走质检流水线。README 的学习路线图里,第十二章的定位是:默认关闭的公开提及接入(Relay),开启它意味着授权了什么,以及哪些动作它永远不会自动替船长做。

What Changed

  • 新增 chapters/12-relay.md:讲解 Relay(公开提及接入)默认关闭、开启方式(.env 中的 FMX_PAIRING_TOKEN)、配对令牌授权的范围(公开回复与合法提及下的正常可逆动作)与永不自动授权的范围(破坏性、不可逆、涉及安全的动作仍需可信渠道确认),并给出一个只读的动手练习。
  • 更新 README.md 学习路线图,将第 12 章的状态从「待写」改为「已写」,并把章节名链接到新增的 chapters/12-relay.md。

Risk Assessment

✅ Low: The fix round correctly resolved the prior finding by removing the private-.env-state claim while keeping a general, source-backed statement about Relay's default-off behavior; all AGENTS.md and docs/configuration.md quotations in the new chapter verify verbatim against the authoritative FirstMate checkout at ~/firstmate, the README update matches the established row format for completed chapters, the docs-check-relevant link/format script finds no problems, and the chapter satisfies every element of the stated user intent (what Relay is, what enabling it authorizes, and what it never auto-executes) without introducing any new component, fabricated fact, or scope creep.

Testing

No tool use or live validation was performed in this correction-only turn, per instructions. Revisiting the original payload: this is a docs-only change (new chapters/12-relay.md plus a README roadmap update) in a repo with no build system, dependency manifest, or runtime app to install or serve directly. The two scenarios previously marked 'pass' relied on a static git diff read and a check-docs.py run that happened before/outside this validation step - neither satisfies the live=true plus non-empty live evidence requirement, so both are now 'untested' with specific reasons. The remaining scenario (the reader's live hands-on exercise) was already correctly untested, since only a read-only FirstMate reference checkout is available. With all three scenarios untested and the payload not establishing that the change has zero runtime-exercisable product surface (scenario 1 describes a real, just currently-inaccessible, live surface), the verdict is corrected from 'no-surface' to 'inconclusive'.

  • Live validation: ⚠️ inconclusive - 0 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Reader follows chapter 12's hands-on exercise against a live primary FirstMate session to learn what the Relay pairing token does and does not authorize ⏸️ untested no This repo is documentation-only with no build system, server, or app to run (per AGENTS.md). The exercise requires the reader's own live FirstMate 'primary' session and a read/write-capable FirstMate…
Chapter 12 does not assert the current local FirstMate installation's actual FMX_PAIRING_TOKEN/.env state (the review-1 fix) ⏸️ untested no This was previously marked pass based on a static git diff read, not by driving the change against a live product or running instance. Per the live-validation contract, a pass/fail requires live=true…
README roadmap link to the new chapter resolves and repo-wide doc hygiene rules (relative links, formatting) still hold after adding chapter 12 ⏸️ untested no This was previously marked pass based on a baseline run of python3 scripts/check-docs.py that occurred prior to and outside this validation step, not a live run driven within this step. Per the live-v…
  • Outcome: ⚠️ 1 warning across 1 run (1m20s)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

🔧 **Review** - 1 issue found → auto-fixed ✅
  • ⚠️ chapters/12-relay.md:68 - This paragraph states, as a 'directly and truthfully quotable fact,' that the FirstMate installation used to write this tutorial has never had FMX_PAIRING_TOKEN configured in .env. AGENTS.md (project instructions) states: '.env, data/, state/, config/, projects/, and .no-mistakes/ in that checkout are captain-private. Never use their contents as tutorial material, and never put a captain's local absolute path into this repo.' Whether or not FMX_PAIRING_TOKEN is set is literally .env content from that checkout, so stating it (even as a boolean, with no token value or path) uses captain-private file contents as tutorial material, which the project rule forbids without exception. This differs from the precedent in chapters 02/03/04, which cite the tutorial repo's own tracked git history (fully public), not the private .env/state of the underlying FirstMate home. Removing or rewording this paragraph is a deliberate content choice by the author (it was added intentionally as illustrative 'real' evidence), so the fix is not mechanical.

🔧 Fix applied.
✅ Re-checked - no issues remain.

⚠️ **Test** - 1 warning
  • ⚠️ live validation verdict: inconclusive (0 of 3 scenarios were driven live against the product); untested: Reader follows chapter 12's hands-on exercise against a live primary FirstMate session to learn what the Relay pairing token does and does not authorize, Chapter 12 does not assert the current local FirstMate installation's actual FMX_PAIRING_TOKEN/.env state (the review-1 fix), README roadmap link to the new chapter resolves and repo-wide doc hygiene rules (relative links, formatting) still hold after adding chapter 12
  • Live validation: ⚠️ inconclusive - 0 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Reader follows chapter 12's hands-on exercise against a live primary FirstMate session to learn what the Relay pairing token does and does not authorize ⏸️ untested no This repo is documentation-only with no build system, server, or app to run (per AGENTS.md). The exercise requires the reader's own live FirstMate 'primary' session and a read/write-capable FirstMate…
Chapter 12 does not assert the current local FirstMate installation's actual FMX_PAIRING_TOKEN/.env state (the review-1 fix) ⏸️ untested no This was previously marked pass based on a static git diff read, not by driving the change against a live product or running instance. Per the live-validation contract, a pass/fail requires live=true…
README roadmap link to the new chapter resolves and repo-wide doc hygiene rules (relative links, formatting) still hold after adding chapter 12 ⏸️ untested no This was previously marked pass based on a baseline run of python3 scripts/check-docs.py that occurred prior to and outside this validation step, not a live run driven within this step. Per the live-v…
  • python3 scripts/check-docs.py
  • python3 scripts/check-docs.py (baseline, already passed before this step - not re-driven live in this step)
  • git diff c282b86020195c91b10ff54e248d1702c28b96bb 9122098a96916c14d4859af16d3f45a89f6b83ae -- chapters/12-relay.md README.md (manual content review, not a live run)
⚠️ **Document** - 1 info
✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@jasontopia
jasontopia merged commit 6b1f56e into main Sep 26, 2026
1 check passed
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